【问题标题】:Android transparency and ShadowsAndroid 透明度和阴影
【发布时间】:2017-05-17 14:19:48
【问题描述】:

我有一个具有透明背景颜色和 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

这是它的样子(阴影造成的奇怪边框):

【问题讨论】:

  • 能否提供图片和xml代码?
  • 刚刚将它们添加到帖子中。

标签: android transparency shadow


【解决方案1】:

只需将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>

【讨论】:

  • 发布您的cardview xml和相关资源,并发布“CardView”的样式
  • 我刚刚发现在cardView的xml中也设置了一个backgroundTint。我把它拿出来了,现在它可以按照你的建议工作了!
  • 很高兴知道:)
猜你喜欢
  • 1970-01-01
  • 2018-02-13
  • 2012-07-17
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多