Transparenter Hintergrund auf CardView - Android

84

Ich möchte einen transparenten Hintergrund für CardView erstellen. Ich kenne backgroundColor, aber ich habe ein Bild in meinem Layout.

Weißt du wie es geht? Oder etwas, das als Kartenansicht funktioniert, aber ich werde einen transparenten Hintergrund setzen?

Grüße

mac229
quelle
Und versuchen Sie esandroid:background="@android:color/transparent"
Psypher
5
Sollten Sie cardBackgroundColor verwenden ?
Harismus
android: background = "@ android: color / transparent" funktioniert nicht Ich verwende nicht backgroundColor, weil es keine Option für transparent hat
mac229
Ich hatte das gleiche Problem, konnte NICHT herausfinden, wie ich es transparent machen kann.
Tyler Pfaff

Antworten:

166

Richten Sie Ihre CardView so ein, dass das cardBackgroundColorAttribut zum Entfernen von Farbe und das cardElevationAttribut zum Entfernen des Schlagschattens verwendet wird. Zum Beispiel:

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

Eine vollständige Liste der unterstützten Attribute finden Sie hier: https://developer.android.com/reference/android/support/v7/widget/CardView.html

Wenn Sie eine ältere API verwenden, müssen Sie CardViewstattdessen diese beiden Funktionen aufrufen :

myCardView.setCardBackgroundColor(Color.TRANSPARENT);
myCardView.setCardElevation(0);
Chris Stillwell
quelle
Hallo, es funktioniert, kannst du mir den Unterschied zwischen android: und card_view: Namespaces sagen?
user3290180
Es funktioniert nicht für API 19, sondern für API 21. Wie auch für niedrigere APIs
Muneeb Mirza
2
@ MuneebMirza Anruf setCardElevation()und setCardBackgroundColor()von Ihrem Code auf Sie CardViewSiehe meine Bearbeitung.
Chris Stillwell
1
ok, ich habe diese Antwort versucht und es hat funktioniert :) stackoverflow.com/questions/34810447/…
Muneeb Mirza
Ich habe versucht zu setzen, @nullaber es hat nicht funktioniert, eine Idee?
Gokhan Arik
10

Einfache 2 Schritte, um Android CardViewtransparent zu machen .

  1. Stellen Sie ein app:cardBackgroundColor="@android:color/transparent". Dies ist ein CardViewAttribut zum Festlegen des Hintergrunds.

  2. Stellen Sie ein app:cardElevation="0dp", um den Schatten zu entfernen.

Hier ist zum Beispiel ein kleiner XML-Code zum Erstellen von transparentem Code 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" />

Hinweis: Nicht verwenden setBackground. Verwenden Sie app:cardBackgroundColorstattdessen.

Rahul Raina
quelle
5

In meinem Fall habe ich das Attribut verwendet android:backgroundTint="@color/some_color" , es wird nur ab API-Level 21 und höher verwendet . Und color #50000000zum Beispiel.

<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
quelle
2

Dies sollte unter API 17 funktionieren

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

verwenden 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
quelle