Android透明度和阴影

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

我的名片视图具有透明的背景色,并且标高为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>

[white_70#50FFFFFF

这是它的外观(阴影引起的奇怪边框):

here's what it looks like. weird border caused by the shadow

android transparency shadow
1个回答
0
投票

仅将cardUseCompatPadding用作false即可删除内部的paddingshadow

尝试这种风格:

<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>
© www.soinside.com 2019 - 2024. All rights reserved.