csh_34 2012-12-12 08:21 采纳率: 0%
浏览 1828
已采纳

以编程的方式取代选择器的图像

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_hl 和btn_icon。

  • 写回答

2条回答 默认 最新

  • 问答小助手 2012-12-13 09:24
    关注

    如果StateListDrawable已经定义后,没有方法能改变单独的状态。
    可以用以下的代码定义一个新的方法:

    StateListDrawable states = new StateListDrawable();
    states.addState(new int[] {android.R.attr.state_pressed},
        getResources().getDrawable(R.drawable.pressed));
    states.addState(new int[] {android.R.attr.state_focused},
        getResources().getDrawable(R.drawable.focused));
    states.addState(new int[] { },
        getResources().getDrawable(R.drawable.normal));
    imageView.setImageDrawable(states);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?