cod*_*der 20 xml android drawable
我有一个按钮,背景在xml中定义.我想根据它所处的当前状态对按钮着色 - 即 - 按下,聚焦,正常.
这是我下面的xml文件.此外,我colored_tint_dark,并且colored_tint都是半透明的颜色,我试图绘制在我从资源文件夹调用的可绘制图像.这是问题所在.当UI首次加载时,图像上具有适当的色调,但是在按下之后,按下的状态不显示任何色调,则正常状态将不显示任何色调.
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
<item android:state_pressed="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button">
<shape>
<gradient
android:endColor="@color/colored_tint"
android:startColor="@color/colored_tint"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/colored_tint" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" android:drawable="@drawable/rounded_grayscale_pinstripe_button">
<shape>
<gradient
android:endColor="@color/colored_tint"
android:startColor="@color/colored_tint"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/colored_tint" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:drawable="@drawable/rounded_grayscale_pinstripe_button">
<shape>
<gradient
android:endColor="@color/colored_tint_dark"
android:startColor="@color/colored_tint_dark"
android:angle="270" />
<stroke
android:width="0dp"
android:color="@color/colored_tint_dark" />
<corners
android:radius="0dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
Run Code Online (Sandbox Code Playgroud)
我知道java中有解决方案,但我特意在xml中寻找解决方案.谢谢.
Ann*_*ire 22
创建一个选择器tint_menu_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_pressed="true" />
<item android:color="@color/white" android:state_activated="true" />
<item android:color="@color/green" />
</selector>
Run Code Online (Sandbox Code Playgroud)
(在我的示例中,图像在选中时为白色,未选中时为绿色)
然后在xml中,您可以向ImageView添加tint属性:
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:tint="@color/tint_menu_item"
android:src="@drawable/ic_menu_home" />
Run Code Online (Sandbox Code Playgroud)
您还可以使用textColor attibute在TextView上使用此选择器:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/tint_menu_item" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20908 次 |
| 最近记录: |