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


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

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.


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


2

Dies sollte unter API 17 funktionieren

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

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>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.