CardView 上的透明背景 - Android

问题描述 投票:0回答:8

我想在CardView上做透明背景。 我知道背景颜色,但我的布局上有图像。

你知道怎么做吗?或者像卡片视图一样工作但我会设置透明背景的东西?

问候

android background android-cardview
8个回答
211
投票

将 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);

18
投票

在 SDK 版本 21 或更高版本中使 Android

CardView
透明的步骤。

  1. 设置

      android:backgroundTint="@android:color/transparent"
    。这是设置背景的
    CardView
    属性。

  2. 设置

    android:cardElevation="0dp"
    去除阴影。

例如,这里是创建透明的 xml 小代码

CardView

<androidx.cardview.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" />

8
投票

在我的例子中,我使用了属性

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


4
投票

使用

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>

3
投票

这应该适用于 API 17

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

1
投票

只需添加背景颜色 app:cardBackgroundColor="#0000"

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:cardBackgroundColor="#0000"> 

0
投票

你必须有cardView才能制作圆形图像

       <androidx.cardview.widget.CardView
            android:layout_width="50dp"
            android:layout_height="50dp"
            app:cardCornerRadius="25dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:elevation="0dp"
            app:cardBackgroundColor="#00424242"
            >

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                android:src="@drawable/play_icon"
                android:padding="5dp"
                android:background="#19000000"
                android:contentDescription="TODO" />

        </androidx.cardview.widget.CardView>

0
投票

我想要的是在卡片视图内有一个文本视图,但我希望卡片视图的背面是透明的。我是这样解决的:

    <androidx.cardview.widget.CardView
        android:id="@+id/cardView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp"
        app:cardBackgroundColor="@color/semiTransparentColorr"
        app:cardUseCompatPadding="true"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:background="@drawable/cardview_stroke"
            android:padding="16dp">

            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Gold"
                android:textSize="12sp" />


        </LinearLayout>
    </androidx.cardview.widget.CardView>

首先需要将cardview的背景颜色值设置为#1AFFFFFF(semiTransparentColorr)。然后我们将cardview_lines.xml作为线性布局的背景。 cardview_中风.xml代码应该是这样的:

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="@color/semiTransparentColorr"/>
    <stroke android:width="1dp" android:color="@color/black"></stroke>
    <corners android:radius="8dp"/>
</shape>
© www.soinside.com 2019 - 2024. All rights reserved.