我有一个ImageView,它有一个可绘制的图像资源设置到选择器.如何以编程方式访问选择器并更改突出显示和非突出显示状态的图像?
这是选择器的代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/iconSelector">
<!-- pressed -->
<item android:state_pressed="true" android:drawable="@drawable/btn_icon_hl" />
<!-- focused -->
<item android:state_focused="true" android:drawable="@drawable/btn_icon_hl" />
<!-- default -->
<item android:drawable="@drawable/btn_icon" />
</selector>
Run Code Online (Sandbox Code Playgroud)
我希望能够替换btn_icon_hl和btn_icon其他图像.
我有这样的抽象:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_pressed" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:drawable="@drawable/seek_thumb_normal" />
Run Code Online (Sandbox Code Playgroud)
在代码中,如何设置Drawable的特定状态?我想将它设置为state_pressed = true状态.
我正在构建一个按钮选择器,状态列表可绘制,
states.addState(new int[] {android.R.attr.state_checked},
checkedDrawable.getDrawable());
states.addState(new int[] {},
unCheckDrawable.getDrawable());
Run Code Online (Sandbox Code Playgroud)
我应该把它置于第二状态?没有android.R.attr.state_unchecked
假设有2个ImageButtons.Now,为了根据状态显示图像,我应该为每个ImageButton编写一个选择器xml.我们可以为两个视图编写一个相同的选择器.因为我的应用程序有很多按钮,并且必须为每个视图编写一个选择器xml.我们能优化吗?