Android透明度和阴影

Android透明度和阴影,android,transparency,shadow,Android,Transparency,Shadow,我有一个透明背景色和4dp高程的卡片视图 似乎没有办法阻止阴影在透明卡内可见。我一直得到一个奇怪的轮廓,一定是下面画的阴影 是否有任何方法(适用于API 21及以上版本)仅在我的卡外绘制阴影,以便我可以使用透明颜色而不产生瑕疵 卡片视图样式xml <style name="GridCard" parent="CardView"> <item name="cardCornerRadius">4dp</item> <item

我有一个透明背景色和4dp高程的卡片视图

似乎没有办法阻止阴影在透明卡内可见。我一直得到一个奇怪的轮廓,一定是下面画的阴影

是否有任何方法(适用于API 21及以上版本)仅在我的卡外绘制阴影,以便我可以使用透明颜色而不产生瑕疵

卡片视图样式xml

<style name="GridCard" parent="CardView">
        <item name="cardCornerRadius">4dp</item>
        <item name="cardElevation">4dp</item>
        <item name="cardUseCompatPadding">true</item>
        <item name="android:layout_marginLeft">8dp</item>
        <item name="android:layout_marginRight">8dp</item>
        <item name="android:layout_marginTop">16dp</item>
        <item name="cardBackgroundColor">@color/white_70</item>
</style>

4dp
4dp
真的
8dp
8dp
16dp
@颜色/白色\u 70
white_70
\50FFFFFF

下面是它的样子(阴影造成的奇怪边界):

<style name="GridCard" parent="CardView">
    <item name="cardCornerRadius">4dp</item>
    <item name="cardElevation">4dp</item>
    <item name="cardUseCompatPadding">false</item>
    <item name="android:layout_marginLeft">8dp</item>
    <item name="android:layout_marginRight">8dp</item>
    <item name="android:layout_marginTop">16dp</item>
    <item name="cardBackgroundColor">@color/white_70</item>
</style>

只需使用
cardUseCompatPadding
作为
false
删除内部
填充和
阴影即可

试试这种风格:

<style name="GridCard" parent="CardView">
    <item name="cardCornerRadius">4dp</item>
    <item name="cardElevation">4dp</item>
    <item name="cardUseCompatPadding">false</item>
    <item name="android:layout_marginLeft">8dp</item>
    <item name="android:layout_marginRight">8dp</item>
    <item name="android:layout_marginTop">16dp</item>
    <item name="cardBackgroundColor">@color/white_70</item>
</style>

4dp
4dp
假的
8dp
8dp
16dp
@颜色/白色\u 70

您能提供图像和xml代码吗?刚刚将它们添加到帖子中。发布您的cardview xml和相关资源,并发布“cardview”样式。我刚刚发现cardview的xml中还设置了背景色。我把它拿了出来,现在它按照你的建议工作了!很高兴知道:)