我有一个使用自定义颜色的波纹。然而,颜色永远不会完全不透明。根据来自的回答Ripple 的颜色应该是什么,colorPrimary 或 colorAccent? (材料设计) https://stackoverflow.com/questions/28484369/what-should-be-the-color-of-the-ripple-colorprimary-or-coloraccent-material-d它的 alpha 值始终为 40%。查看答案,我尝试使用以下 v21 特定的可绘制 xml 来强制选择不透明的红色背景:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffff0000">
<item android:id="@android:id/mask">
<color android:color="#ffffffff" />
</item>
</ripple>
然而,我总是得到阿尔法红,而不是我想要的不透明红色。是否有可能获得不透明的波纹?这是波纹的屏幕截图,其中红色永远不会完全不透明。
您可以在以下位置找到连锁反应的简单示例:https://github.com/gradha/Stackoverflow33217896 https://github.com/gradha/Stackoverflow33217896使用 XML 波纹和由代码生成的另一个波纹。后者表明,在不重写代码的情况下不可能实现不透明的波纹。
您可以简单地为有界波纹输入 alpha 值。
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorAccent">
<item android:id="@android:id/mask">
<color android:color="#42ffffff" />
</item>
</ripple>
对于无限的波纹如果你知道你的强调色,你可以设置颜色的不透明度
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/accent_26" />
颜色.xml
<resources>
...
<color name="accent">#ff33b5e5</color>
<color name="accent_alpha26">#4233b5e5</color>
</resources>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)