Прозорий фон на CardView - Android


84

Я хочу зробити прозорий фон на CardView. Я знаю backgroundColor, але на макеті є зображення.

Ви знаєте, як це зробити? Або щось, що працює як cardview, але я встановлю прозорий фон?

З повагою


DId you tryandroid:background="@android:color/transparent"
Psypher

5
Чи слід використовувати cardBackgroundColor ?
харизм

android: background = "@ android: color / transparent" не працює. Я не використовую backgroundColor, оскільки в ньому немає опції прозорого
mac229,

У мене була та сама проблема, Я НЕ міг зрозуміти, як зробити її прозорою.
Тайлер Пфафф,

Відповіді:


167

Налаштуйте CardView на використання cardBackgroundColorатрибута для видалення кольору та cardElevationатрибута для видалення тіні. Наприклад:

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

Повний список підтримуваних атрибутів див. Тут: https://developer.android.com/reference/android/support/v7/widget/CardView.html

Якщо ви використовуєте старіший API, вам потрібно буде викликати ці дві функції на своєму CardView:

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

привіт, це працює, не могли б ви сказати мені різницю між просторами імен android: і card_view:?
user3290180

Це не працює для api 19, але працює для api 21. Як теж це зробити для нижчих API
Muneeb Mirza

2
Дзвінок @MuneebMirza setCardElevation()і setCardBackgroundColor()з вашого коду на вас CardViewДивіться мою редакцію .
Кріс Стіллвелл

1
Добре , я спробував цей відповідь , і він працював :) stackoverflow.com/questions/34810447 / ...
Муніб Мірза

Я намагався встановити, @nullале це не спрацювало, будь-яка ідея?
Gokhan Arik

11

Прості 2 кроки, щоб зробити Android CardViewпрозорим.

  1. Встановити app:cardBackgroundColor="@android:color/transparent". Це CardViewатрибут для встановлення фону.

  2. Встановити, app:cardElevation="0dp"щоб прибрати тінь.

Наприклад, ось невеликий xml-код для створення прозорого 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" />

Примітка: Не використовуйте setBackground. Використовуйте app:cardBackgroundColorзамість цього.


5

У моєму випадку я використовував атрибут android:backgroundTint="@color/some_color" , він використовується лише на рівні API 21 та вище . І 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"
        >



2

використання 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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.