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


¿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);

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.


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


2

Esto debería funcionar en API 17

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

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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.