2015-02-20 22 views
39

Tôi muốn làm nền trong suốt trên CardView. Tôi biết backgroundColor nhưng tôi có hình ảnh trên Bố cục của mình.Nền trong suốt trên CardView - Android

Bạn có biết cách thực hiện không? Hoặc một cái gì đó mà làm việc như cardview nhưng tôi sẽ thiết lập một nền trong suốt?

Trân

+0

bạn đã thử 'android: background = "@ android: màu/minh bạch" ' – Psypher

+2

bạn nên sử dụng _cardBackgroundColor_? – harism

+0

android: background = "@ android: color/transparent" không hoạt động Tôi không sử dụng backgroundColor vì nó không có tùy chọn trong suốt – mac229

Trả lời

69

Cài đặt CardView bạn sử dụng thuộc tính cardBackgroundColor để loại bỏ màu sắc và cardElevation thuộc tính để loại bỏ các hiệu ứng bóng đổ. Ví dụ:

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

Đối với một danh sách đầy đủ các thuộc tính hỗ trợ xem tại đây: https://developer.android.com/reference/android/support/v7/widget/CardView.html

Nếu bạn đang sử dụng một API cũ hơn, bạn sẽ cần phải gọi hai chức năng trên CardView của bạn thay vì:

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

nó hoạt động hoàn hảo, thx – mac229

+0

hi, nó hoạt động, bạn có thể cho tôi biết sự khác biệt giữa android: và card_view: không gian tên? – user3290180

+0

Nó không hoạt động cho api 19 nhưng làm việc cho api 21. Làm thế nào quá cho nó thấp hơn API –

2

Trong trường hợp của tôi, tôi đã sử dụng thuộc tính android:backgroundTint="@color/some_color", chỉ được sử dụng vi API cấp 21 trở lên. Và color #50000000 chẳng hạn.

<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

không hoạt động trên 21+ –

1

này nên làm việc trên API 17

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

không hoạt động trên bất kỳ phiên bản –

0

đơn giản 2 bước để làm cho Android CardView trong suốt.

  1. Đặt app:cardBackgroundColor="@android:color/transparent". Đây là thuộc tính CardView để đặt nền.

  2. Đặt app:cardElevation="0dp" để xóa bóng.

Ví dụ, đây là mã xml nhỏ để tạo minh bạch 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" /> 

Lưu ý: Không sử dụng setBackground . Sử dụng app:cardBackgroundColor để thay thế.

0

sử dụng 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

nào không hoạt động chút nào, xin lỗi bro –