以编程方式替换选择器图像

以编程方式替换选择器图像

我有一个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>

我希望能够替换btn_icon_hlbtn_icon其他图像。


繁星淼淼
浏览 311回答 2
2回答

慕妹3242003

至于我已经能够找到(我自己尝试过类似的东西),在定义StateListDrawable之后无法修改单个状态。但是,您可以通过代码定义一个新的:StateListDrawable&nbsp;states&nbsp;=&nbsp;new&nbsp;StateListDrawable();states.addState(new&nbsp;int[]&nbsp;{android.R.attr.state_pressed}, &nbsp;&nbsp;&nbsp;&nbsp;getResources().getDrawable(R.drawable.pressed));states.addState(new&nbsp;int[]&nbsp;{android.R.attr.state_focused}, &nbsp;&nbsp;&nbsp;&nbsp;getResources().getDrawable(R.drawable.focused));states.addState(new&nbsp;int[]&nbsp;{&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;getResources().getDrawable(R.drawable.normal));imageView.setImageDrawable(states);你可以随便保留其中两个,或者根据需要创建另一个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android