我有一个使用自定义颜色的涟漪效果。然而,颜色永远不会完全不透明。根据(材料设计)涟漪的颜色应该是colorPrimary还是colorAccent?的答案,它始终具有40%的Alpha值。根据答案,我尝试使用以下针对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找到涟漪效果的简单示例,其中包括使用XML涟漪和通过代码生成的另一个示例。后者表明,如果不重写代码,则无法实现不透明的涟漪效果。
halfAlpha
被计算并应用于Paint
对象。这是不可配置的,意味着没有通过样式或编程更改的if-else
语句可以改变它。 - azizbekian