2015-02-20 28 views
39

Voglio fare uno sfondo trasparente su CardView. Conosco backgroundColor ma ho un'immagine sul mio layout.Sfondo trasparente su CardView - Android

Sai come si fa? O qualcosa che funziona come cardview ma fisserò uno sfondo trasparente?

saluti

+0

Hai provato 'Android: background = "@ Android: colore/trasparente"' – Psypher

+2

dovrebbe utilizzare _cardBackgroundColor_? – harism

+0

android: background = "@ android: color/transparent" non funziona Non uso backgroundColor perché non ha l'opzione di trasparente – mac229

risposta

69

Imposta il tuo CardView usare l'attributo cardBackgroundColor per rimuovere il colore e l'attributo cardElevation per rimuovere l'ombra. Per esempio:

<android.support.v7.widget.CardView 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/myCardView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    card_view:cardBackgroundColor="@android:color/transparent" 
    card_view:cardElevation="0dp"> 

Per un elenco completo di attributi supportati vedere qui: https://developer.android.com/reference/android/support/v7/widget/CardView.html

Se si utilizza un API più vecchio, è necessario chiamare queste due funzioni sul vostro CardView invece:

myCardView.setCardBackgroundColor(Color.TRANSPARENT); 
myCardView.setCardElevation(0); 
+1

funziona perfettamente, grazie – mac229

+0

, funziona, potresti dirmi la differenza tra Android: e card_view: namespace? – user3290180

+0

Non funziona per api 19 ma funziona per api 21. Come farlo anche per API inferiori –

2

Nel mio caso, ho usato l'attributo android:backgroundTint="@color/some_color", è usato solo en livello di API 21 e più alto. E color #50000000 per esempio.

<android.support.v7.widget.CardView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     card_view:cardCornerRadius="3dp" 
     app:cardElevation="0dp" 
     android:backgroundTint="@color/negro_label" 
     > 

+0

non funziona su 21+ –

1

Questo dovrebbe funzionare su API 17

cardView.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent)); 
+0

non funziona su nessuna versione –

0

semplici 2 passi per rendere Android CardView trasparente.

  1. Set app:cardBackgroundColor="@android:color/transparent". Questo è l'attributo CardView per impostare lo sfondo.

  2. Impostare app:cardElevation="0dp" per rimuovere l'ombra.

Per esempio, qui è piccolo codice XML per creare trasparente CardView

<android.support.v7.widget.CardView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/card_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:cardBackgroundColor="@android:color/transparent" 
     app:cardElevation="0dp" /> 

Nota: Non utilizzare setBackground . Utilizzare invece app:cardBackgroundColor.

0

uso app:cardBackgroundColor="@android:color/transparent"

<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginBottom="20dp" 
    android:layout_marginLeft="20dp" 
    android:layout_marginRight="20dp" 
    android:layout_marginTop="10dp" 
    app:cardCornerRadius="16dp" 
    app:cardElevation="16dp" 
    app:cardBackgroundColor="@android:color/transparent" > 

<--inside cardlayout--> 

    </android.support.v7.widget.CardView> 
+0

non funziona affatto, mi dispiace bro –