Przezroczyste tło w CardView - Android

86

Chcę zrobić przezroczyste tło w CardView. Wiem, że backgroundColor, ale mam obraz w moim układzie.

Czy wiesz, jak to zrobić? A może coś, co działa jak cardview, ale ustawię przezroczyste tło?

pozdrowienia

mac229
źródło
Czy nie spróbujeszandroid:background="@android:color/transparent"
Psypher
5
Czy powinieneś używać cardBackgroundColor ?
harizm
android: background = "@ android: color / transparent" nie działa Nie używam backgroundColor, ponieważ nie ma opcji przezroczystości
mac229
Miałem ten sam problem, nie mogłem wymyślić, jak uczynić go przezroczystym.
Tyler Pfaff

Odpowiedzi:

171

Skonfiguruj CardView, aby użyć cardBackgroundColoratrybutu do usunięcia koloru i cardElevationatrybutu, aby usunąć cień. Na przykład:

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

Pełną listę obsługiwanych atrybutów znajdziesz tutaj: https://developer.android.com/reference/android/support/v7/widget/CardView.html

Jeśli korzystasz ze starszego interfejsu API, musisz CardViewzamiast tego wywołać te dwie funkcje :

myCardView.setCardBackgroundColor(Color.TRANSPARENT);
myCardView.setCardElevation(0);
Chris Stillwell
źródło
cześć, to działa, czy możesz mi powiedzieć, jaka jest różnica między przestrzeniami nazw android: i card_view:?
user3290180
Nie działa dla api 19, ale działa dla api 21. Jak też to zrobić dla niższych API
Muneeb Mirza
2
@MuneebMirza zadzwoń setCardElevation()i setCardBackgroundColor()od twojego kodu na ciebie CardViewZobacz moją edycję.
Chris Stillwell
1
ok, wypróbowałem tę odpowiedź i zadziałało :) stackoverflow.com/questions/34810447/…
Muneeb Mirza
Próbowałem ustawić, @nullale nie udało się, jakiś pomysł?
Gokhan Arik
11

Proste 2 kroki, aby Android był CardViewprzejrzysty.

  1. Ustaw app:cardBackgroundColor="@android:color/transparent". To jest CardViewatrybut do ustawiania tła.

  2. Zestaw app:cardElevation="0dp"do usuwania cienia.

Na przykład tutaj jest mały kod XML do tworzenia przezroczystych 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" />

Uwaga: nie używaj setBackground. Użyj app:cardBackgroundColorzamiast tego.

Rahul Raina
źródło
5

W moim przypadku użyłem atrybutu android:backgroundTint="@color/some_color" , jest on używany tylko na poziomie API 21 i wyższym . I color #50000000na przykład.

<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
źródło
2

To powinno działać na API 17

cardView.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent));
Cristian Cardoso
źródło
2

posługiwać się 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
źródło
0

Po prostu dodaj aplikację do koloru tła: cardBackgroundColor = "# 0000"

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:cardBackgroundColor="#0000"> 
user12091113
źródło