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


86

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

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

С уважением


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

использовать 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"> 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.