如何在xml选择器中设置alpha

时间:2018-03-18 03:50:00

标签: android selector

我想使用选择器在图标未启用时将其灰显。看起来像这样的东西应该有效(白色背景):

cslug

但是在运行时它会导致java.lang.NumberFormatException。我也试过“0.5f”。同样的错误。

这与Is there a way to set drawable's Alpha using XML?类似,但我特别询问NumberFormatException。顺便说一句,我也尝试使用0到255之间的整数值。我得到了同样的错误。

2 个答案:

答案 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