我正在尝试使用以下方式将不透明度设置为“边框颜色”:
d.setStroke(5 , Color.parseColor("#4A000000"))
我得到的结果是边界为50%的深色和50%的不透明度。
如何使它们像普通的背景色ColorUtils.setAlphaComponent(color, 100)
一样融合?
答案 0 :(得分:0)
您可以使用setStroke(),第二个参数是ColorStateList
。
ColorStateList
中的每个项目都必须定义一个android:color
属性,如下所示:
<item android:state_enabled="false"
android:color="?android:attr/colorAccent"
android:alpha="0.5" /> //use this xml attribute to set opacity.
下面是一个完整的ColorStateList
示例:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:color="@color/sample_focused" />
<item android:state_pressed="true"
android:state_enabled="false"
android:color="@color/sample_disabled_pressed" />
<item android:state_enabled="false"
android:color="@color/sample_disabled_not_pressed" />
<item android:color="@color/sample_default"
android:alpha="0.5"/>
</selector>
在创建ColorStateList
资源xml之后,在setStroke()
方法中使用它。