2015-02-20 16 views
39

Chcę zrobić przezroczyste tło na CardView. Znam backgroundColor, ale mam obraz na moim układzie.Przezroczyste tło na CardView - Android

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

Pozdrowienia

+0

Próbowałaś 'android tło = "@ android: kolor/przezroczysty"' – Psypher

+2

Należy użyć _cardBackgroundColor_? – harism

+0

android: background = "@ android: kolor/przezroczysty" nie działa Nie używam backgroundColor, ponieważ nie ma opcji przezroczystego – mac229

Odpowiedz

69

Skonfiguruj CardView użyć atrybutu cardBackgroundColor usunąć kolor i atrybut cardElevation 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"> 

Aby uzyskać pełną listę obsługiwanych atrybutów zobaczyć tutaj: https://developer.android.com/reference/android/support/v7/widget/CardView.html

Jeśli używasz starszej API, trzeba będzie nazwać te dwie funkcje na CardView zamiast:

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

działa doskonale, thx – mac229

+0

cześć, działa, czy mógłbyś mi powiedzieć różnicę między Android: a card_view: namespaces? – user3290180

+0

To nie działa dla api 19, ale działa dla api 21. Jak to zrobić dla niższych API –

2

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

<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

nie działa na 21+ –

1

ten powinien działać na API 17

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

nie działa na żadnej wersji –

0

2 Proste kroki, aby Android CardView przejrzyste.

  1. Zestaw app:cardBackgroundColor="@android:color/transparent". To jest atrybut CardView, aby ustawić tło.

  2. Zestaw app:cardElevation="0dp" do usunięcia cienia.

Na przykład, tutaj jest mały kod XML do tworzenia przejrzystych 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 . Zamiast tego użyj app:cardBackgroundColor.

0

użycie 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

nie działa w ogóle, przepraszam –

Powiązane problemy