Fondo transparente en CardView - Android

84

Quiero hacer un fondo transparente en CardView. Sé backgroundColor pero tengo una imagen en mi diseño.

¿Sabes cómo hacerlo? ¿O algo que funcione como cardview pero estableceré un fondo transparente?

Saludos

mac229
fuente
¿Intentasteandroid:background="@android:color/transparent"
Psypher
5
¿Debería utilizar cardBackgroundColor ?
harism
android: background = "@ android: color / transparent" no funciona No uso backgroundColor porque no tiene la opción de transparente
mac229
Tuve el mismo problema, NO pude averiguar cómo hacerlo transparente.
Tyler Pfaff

Respuestas:

166

Configure su CardView para usar el cardBackgroundColoratributo para eliminar el color y el cardElevationatributo para eliminar la sombra paralela . Por ejemplo:

<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"> 

Para obtener una lista completa de los atributos admitidos, consulte aquí: https://developer.android.com/reference/android/support/v7/widget/CardView.html

Si está utilizando una API anterior, deberá llamar a estas dos funciones en su CardViewlugar:

myCardView.setCardBackgroundColor(Color.TRANSPARENT);
myCardView.setCardElevation(0);
Chris Stillwell
fuente
hola, funciona, ¿podría decirme la diferencia entre android: y card_view: namespaces?
user3290180
No funciona para api 19 pero funciona para api 21. ¿Cómo hacerlo también para API inferiores?
Muneeb Mirza
2
@MuneebMirza llama setCardElevation()y setCardBackgroundColor()desde tu código en CardViewVer mi edición.
Chris Stillwell
1
ok, probé esta respuesta y funcionó :) stackoverflow.com/questions/34810447/…
Muneeb Mirza
Traté de configurar @nullpero no funcionó, ¿alguna idea?
Gokhan Arik
10

Sencillos 2 pasos para hacer que Android sea CardViewtransparente.

  1. Establecer app:cardBackgroundColor="@android:color/transparent". Este es un CardViewatributo para establecer el fondo.

  2. Establecer app:cardElevation="0dp"para eliminar la sombra.

Por ejemplo, aquí hay un pequeño código XML para crear transparencias. 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: no use setBackground. Úselo en su app:cardBackgroundColorlugar.

Rahul Raina
fuente
5

En mi caso, utilicé el atributo android:backgroundTint="@color/some_color" , solo se usa en el nivel de API 21 y superior . Y color #50000000por ejemplo.

<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"
        >

geros
fuente
2

Esto debería funcionar en API 17

cardView.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent));
Cristian Cardoso
fuente
2

utilizar 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>
Kapil Parmar
fuente