CardView의 투명한 배경-Android


84

CardView에서 투명한 배경을 만들고 싶습니다. backgroundColor를 알고 있지만 레이아웃에 이미지가 있습니다.

어떻게하는지 아십니까? 아니면 cardview로 작동하지만 투명한 배경을 설정할 것입니까?

문안 인사


당신은 시도해 봤어android:background="@android:color/transparent"
Psypher

5
cardBackgroundColor 를 사용해야 합니까 ?
harism

android : background = "@ android : color / transparent"작동하지 않음 투명 옵션이 없기 때문에 backgroundColor를 사용하지 않습니다
mac229

나는 똑같은 문제가 있었고 그것을 투명하게 만드는 방법을 알 수 없었습니다.
Tyler Pfaff 2015 년

답변:


166

cardBackgroundColor속성 을 사용하여 색 cardElevation을 제거하고 그림자를 제거하는 속성 을 사용하도록 CardView를 설정하십시오 . 예를 들면 :

<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를 위해 그것을 할 방법도 API (21)에 대해 작동하지 않습니다
Muneeb 미르자

2
@MuneebMirza 전화 setCardElevation()setCardBackgroundColor()귀하의 코드에서 CardView내 편집 을 참조하십시오.
Chris Stillwell

1
확인 나는이 대답을 시도하고 :) 일 stackoverflow.com/questions/34810447/...
Muneeb 미르자를

설정을 시도했지만 @null작동하지 않았습니다.
고칸 아리

10

Android를 CardView투명하게 만드는 간단한 2 단계 .

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

Note: Don't use setBackground. Use app:cardBackgroundColor instead.


5

In my case, I used the attribute android:backgroundTint="@color/some_color",it is only used en API level 21 and higher. And color #50000000 for example.

<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

This should work on API 17

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

2

use 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>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.