2015-02-20 3 views
39

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

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

С уважением

+0

Пробовали ли вы 'андроида: фон = "@ Android: цвет/прозрачный"' – Psypher

+2

Если вы используете _cardBackgroundColor_? – harism

+0

android: background = "@ android: color/transparent" dont work Я не использую backgroundColor, потому что у него нет опции прозрачного – mac229

ответ

69

Настройте 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); 
+1

он отлично работает, thx – mac229

+0

привет, он работает, не могли бы вы сказать мне разницу между android: и card_view: namespaces? – user3290180

+0

Он не работает для api 19, но работает для api 21. Как это сделать для более низких API –

2

В моем случае, я использовал атрибут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" 
     > 

+0

не работает над 21+ –

1

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

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

не работает ни в одной версии –

0

Простой 2 шага, чтобы сделать Android CardView прозрачным.

  1. Set 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.

0

использование 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

не работает вообще, извините, bro –

Смежные вопросы