Nền trong suốt trên CardView - Android


84

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.

Bạn có biết làm thế nào để làm điều đó? Hoặc thứ gì đó hoạt động như cardview nhưng tôi sẽ đặt nền trong suốt?

Trân trọng


DId bạn thửandroid:background="@android:color/transparent"
Psypher

5
Bạn có nên sử dụng cardBackgroundColor không?
harism

android: background = "@ android: màu / minh bạch" làm việc dont Tôi không sử dụng backgroundColor bởi vì nó không có tùy chọn trong suốt
mac229

Tôi đã gặp vấn đề tương tự, KHÔNG thể tìm ra cách làm cho nó minh bạch.
Tyler Pfaff

Câu trả lời:


166

Thiết lập CardView của bạn để sử dụng cardBackgroundColorthuộc tính để loại bỏ màu và cardElevationthuộc tính để loại bỏ 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"> 

Để có danh sách đầy đủ các thuộc tính được hỗ trợ, hãy 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, CardViewthay vào đó bạn sẽ cần gọi hai hàm này :

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

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

Nó không phải là làm việc cho api 19 nhưng làm việc cho api 21. Làm thế nào quá làm điều đó cho API thấp
Muneeb Mirza

2
@MuneebMirza cuộc gọi setCardElevation()setCardBackgroundColor()từ mã của bạn trên bạn CardViewXem chỉnh sửa của tôi.
Chris Stillwell

1
ok tôi đã cố gắng câu trả lời này và nó làm việc :) stackoverflow.com/questions/34810447/...
Muneeb Mirza

Tôi đã cố gắng thiết lập @nullnhưng nó không hoạt động, bất kỳ ý tưởng?
Gokhan Arik,

10

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

  1. Thiết lập app:cardBackgroundColor="@android:color/transparent". Đây là CardViewthuộc tính để thiết lập nền.

  2. Đặt app:cardElevation="0dp"để loại bỏ bóng.

Ví dụ: đây là mã xml nhỏ để tạo trong suốt 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:cardBackgroundColorthay thế.


5

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

<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

Điều này sẽ hoạt động trên API 17

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

2

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>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.