我想使用选择器在图标未启用时将其灰显。看起来像这样的东西应该有效(白色背景):
cslug
但是在运行时它会导致java.lang.NumberFormatException。我也试过“0.5f”。同样的错误。
这与Is there a way to set drawable's Alpha using XML?类似,但我特别询问NumberFormatException。顺便说一句,我也尝试使用0到255之间的整数值。我得到了同样的错误。
答案 0 :(得分:0)
你不能在某个项目中使用android:alpha。你可以在项目中放置类似形状的东西,或者你可以在项目中使用drawable来达到同样的效果。
你是什么意思"灰色"虽然?你所展示的内容并非如此,以至于制造出部分不透明的东西。如果该项目最初是红色并且您将alpha更改为0.5,那么它仍然会变成红色。但假设我们以灰色开始,在这种情况下为F5F5F5(Material Grey 100),那么你可以这样做:
Scale
注意" 80"在虚假状态下给出不同的不透明度。这是一个做类似但在项目中有矩形形状的例子:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:drawable="#FFF5F5F5" />
<item android:state_enabled="false" android:drawable="#80F5F5F5" />
</selector>
答案 1 :(得分:0)
考虑到这是您的颜色选择器,它位于res / color / my_selector.xml下
注意:此功能适用于Android 23及更高版本的设备
您可以在此颜色选择器中将alpha用作
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/my_color" android:state_enabled="true" />
<item android:alpha="@dimen/my_float_value" android:color="@color/my_color" />
</selector>
要使用此-
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_label"
android:background="@color/my_selector" />
请参考以下链接以获取更多参考: https://developer.android.com/reference/android/content/res/ColorStateList.html