如果我将半透明颜色设置为 cardBackgroundColor,cardView 中间会出现奇怪的矩形形状

Posted

技术标签:

【中文标题】如果我将半透明颜色设置为 cardBackgroundColor,cardView 中间会出现奇怪的矩形形状【英文标题】:Strange rectangle shape appears in the middle of cardView if I set semi-transparent color to cardBackgroundColor 【发布时间】:2021-12-18 14:21:45 【问题描述】:

我有以下布局。

<androidx.cardview.widget.CardView
        android:layout_
        android:layout_
        app:cardBackgroundColor="#AACC0000"
        app:cardCornerRadius="30dp">

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:text="Some text" />

</androidx.cardview.widget.CardView>

如果我将半透明颜色(#AACC0000)设置为cardBackgroundColor,cardView中间会出现奇怪的矩形。

如果我在没有 Alpha 通道 (#CC0000) 的情况下设置颜色,则该矩形将消失。问候

【问题讨论】:

我无法重现该问题,您在真机和模拟器上是否得到相同的结果? 我在真实设备上遇到了这个问题。在 xml 编辑器中未显示此问题 【参考方案1】:

添加 alpha 值 android:alpha="0.99" 解决了这个问题。 取 0.99 作为高边 alpha 值

<androidx.cardview.widget.CardView
        android:layout_
        android:layout_
        android:alpha="0.99"
        app:cardBackgroundColor="#AACC0000"
        app:cardCornerRadius="30dp">

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:text="Some text" />

【讨论】:

【参考方案2】:

这是因为海拔高度。将cardElevation 设置为0dp 并检查

<androidx.cardview.widget.CardView
    android:layout_
    android:layout_
    app:cardBackgroundColor="#AACC0000"
    app:cardCornerRadius="30dp"
    app:cardElevation="0dp">

    <TextView
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:text="Some text" />

</androidx.cardview.widget.CardView>

【讨论】:

是的,你是对的。但为什么会发生。如果我想在这种情况下使用 cardElevation 怎么办? 我不确定cardview是否可行,你可以试试这个***.com/a/62263221/6478047

以上是关于如果我将半透明颜色设置为 cardBackgroundColor,cardView 中间会出现奇怪的矩形形状的主要内容,如果未能解决你的问题,请参考以下文章

ios导航栏半透明设置为NO改变底部UICollectionView的高度

Echarts 默认高亮颜色透明/高亮无色

TableViewCell 颜色问题

Android 计算颜色的透明度

如何设置频谱透明度

WinForm透明背景文字轮廓有表格背景颜色