【问题标题】:Transparent white button looks bad in Android Material Design透明的白色按钮在 Android Material Design 中看起来很糟糕
【发布时间】:2020-07-04 01:24:12
【问题描述】:

考虑这 2 个屏幕截图。我定义了左上角和右下角的元素:

左/上的屏幕截图中我的所有元素都使用纯白色 (#FFFFFF),而下/右的屏幕截图增加了一点透明度 (#D0FFFFFF)。 我的问题是我的元素在透明的情况下看起来很可怕。例如,FAB(右下)无缘无故地包含一个较小的不透明圆圈。

我所有的元素都有海拔 6(因为那是 FAB 默认海拔)。任何高于 2 的高度都可以清楚地看到这个问题,而低于 2 的任何东西都不会投射足够的阴影让我看起来可以接受。

地图定义的元素(右上角)似乎完全不受此影响!它有什么不同?它显然像我一样使用透明度,并且还投射对应于海拔 2 或更高的阴影。

使用的代码基本上是这样的:

fab = FloatingActionButton(this.context!!)
fab.backgroundTintList = ColorStateList.valueOf(Color.parseColor("#d0ffffff"))
fab.compatElevation = 6F

【问题讨论】:

    标签: android kotlin material-design google-maps-android-api-2 transparency


    【解决方案1】:

    例如,FAB(右下)包含一个较小的不透明圆圈 没有理由

    稍后...fab.compatElevation = 6F

     

    您看到的圆圈是 FAB 的阴影,由高程生成。 如果您想移除阴影但保持高度,请执行以下操作:

    fab.outlineProvider = null
    

    如果你想同时保留高程和阴影,你必须制作一个自定义的 outlineProvider(可能是香蕉形的)。

    【讨论】:

    • 啊,我预感到这是 FAB 在地面/地图上的影子!我确实想要物体周围的黑色阴影(这不是你使用高程的原因吗?),所以可悲的是fab.outlineProvider = null 并不让我高兴。还是谢谢。
    • 如果你不想自定义轮廓,你可以自己制作阴影,用多层灰度作为 GradientDrawable 并添加到 FAB 的背景中。我认为您的问题没有任何开箱即用的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多