Прозрачный фон в CardView - Android

86

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

Ты знаешь как это сделать? Или что-то, что работает как cardview, но я установлю прозрачный фон?

С уважением

mac229
источник
DId you tryandroid:background="@android:color/transparent"
Psypher
5
Стоит ли использовать cardBackgroundColor ?
harism
android: background = "@ android: color / transparent" не работает Я не использую backgroundColor, потому что у него нет опции прозрачности
mac229
У меня была такая же проблема, я НЕ мог понять, как сделать ее прозрачной.
Тайлер Пфафф,

Ответы:

170

Настройте 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/…
Muneeb Mirza
Я пытался установить, @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

Это должно работать с API 17

cardView.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.transparent));
Кристиан Кардосо
источник
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>
Капил Пармар
источник
0

Просто добавьте приложение цвета фона: cardBackgroundColor = "# 0000"

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:cardBackgroundColor="#0000"> 
user12091113
источник