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

时间:2015-09-07 23:54:40

标签: android transparency 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"/>

结果是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)));

结果如下:

problem img

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

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

2)为什么以编程方式设置cardBackgroundColor会使着色起作用,但是现在有一个隐式添加的填充?

0 个答案:

没有答案