简单就像它本身。我想做一个alpha按钮,它将有一个选定的绘图方式:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Play/Pause -->
<item android:state_selected="false" android:drawable="@drawable/item" />
<item android:state_selected="true" android:drawable="@drawable/item" />
</selector>
我想做这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Play/Pause -->
<item android:alpha="125" android:state_selected="false" android:drawable="@drawable/item" />
<item android:alpha="255" android:state_selected="true" android:drawable="@drawable/item" />
</selector>
谢谢你们。
9条答案
按热度按时间qmelpv7a1#
OP已经有一段时间了,但我个人发现了一个解决方案,比建议的答案更适合我。创建一个BitmapDrawable make可以很容易地设置alpha:
Alpha可以是0到255之间的任何值。请注意,它是HEX颜色值Alpha的倒数,例如70% Alpha在HEX中为B3,在BitmapDrawable中为77。
xxslljrj2#
我用一个可绘制的
在这里使用了alpha 50,它设置不透明度级别。
e5njpo683#
我一直在寻找同样的东西。即使这是张贴超过四年前,这是最高职位时,谷歌的问题,所以我会在这里回复。
这就是我的解决方案
icnyk63a4#
对于那些与OP有同样问题的人,AppCompat现在允许您设置'alpha'参数,正如他在目标代码中所希望的那样:
更多信息here。
lsmepo6l5#
我的目标是让一个按钮在不同的alpha下有它的选择和按下状态-但是使用相同的(png)资源并且影响尽可能少的文件。
我的解决方案类似于改变BitmapDrawable中的alpha--但它是从选择器中进行的,因此只会影响一个文件。
使用位图的色调功能,记住色调会给现有像素着色,所以使用白色。例如,#80FFFFFF -保持颜色为原始颜色,但减少50%的alpha这也可以用来改变图标的颜色时,按下。
这是我的可绘制XML文件:
wd2eg0qa6#
我使用下面的自定义单选按钮,当它被禁用时,应该是对角线删除线。
Example Image of 5 radio buttons where 4 of them are enabled
lskq00tm7#
我同意Kasium Sugest的观点,所以对于一些Android版本来说,Alpha的指定是百分比。
vom3gejh8#
我想你可以创建你自己的drawable,它可以把这个参数作为一个参数。虽然我从来没有做过这样的事情。
查看此链接:
How to set alpha value for drawable in a StateListDrawable?
如果这不可能,你可以用代码来做...
这里有2个链接我已经找到了关于它,在情况下你希望使用位图代替:
gcuhipw99#
它不是那么简单,但它可能:
首先,你必须定义颜色文件夹中的颜色你的资源,像这样:
color/inst_control_pressed_transp.xml
现在,您可以从某个形状引用该颜色:
drawable/background_clear_pressed.xml
您可以使用它在drawable:
drawable/background_bordered_clear_selector.xml