带有透明背景问题的 CardView > API 21

ros*_*hal 5 transparency android android-cardview

我正在构建一个具有透明背景的 CardView,并且在尝试将 cardBackgroundColor 设置为带有 alpha 通道的一个时遇到了问题。

这是我尝试过的:

<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/list_view_btn"
    android:layout_width="@dimen/icon_size"
    android:layout_height="@dimen/icon_size"
    android:layout_gravity="bottom|start"
    android:layout_marginLeft="@dimen/activity_horizontal_margin"
    android:layout_marginStart="@dimen/activity_horizontal_margin"
    android:layout_marginBottom="@dimen/icon_bottom_margin"
    card_view:cardBackgroundColor="#66F9F9F9"
    card_view:cardCornerRadius="3dp"/>
Run Code Online (Sandbox Code Playgroud)

结果是一个没有任何透明度的 CardView 按钮(但带有 F9F9F9 灰色,忽略 66 alpha 值)。因此,下一步是尝试以编程方式执行此操作:

mListBtn.setPreventCornerOverlap(false);
int baseColor = getResources().getColor(R.color.material_gray);
mListBtn.setCardBackgroundColor(Color.argb(50,
                Color.red(baseColor),
                Color.green(baseColor),
                Color.blue(baseColor)));
Run Code Online (Sandbox Code Playgroud)

这是结果:

问题 img

请注意,中心和边框之间有一个填充。CardView 是空的,里面没有子视图,我在有/没有 setPreventCornerOverlap() 调用的情况下尝试了这个,看看这是否是问题......有人可以解释为什么会发生这种情况吗?

1)为什么我的带有 cardBackgroundColor 的 CardView 的 XML 定义忽略了 alpha 着色

2) 为什么以编程方式设置 cardBackgroundColor 会导致着色起作用,但现在隐式添加了填充?