-1

这是我用来根据状态更改应用程序中的按钮图像的 xml 代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="false"
android:drawable="@drawable/button_n" />

<item android:state_pressed="true"
android:drawable="@drawable/button_p" />

</selector>

我怎样才能通过代码做到这一点?我试过这个:

StateListDrawable sl = new StateListDrawable();

sl.addState(new int[]{ android.R.attr.state_pressed}, R.drawable.gridcard_button_p);

但是 addState 将一个 int 数组作为第一个参数,将一个 Drawable Object 作为 sedon 一个(不是我的示例中的 int )。

我怎样才能以正确的方式使用这种方法?

4

1 回答 1

1
 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));
 //... like this you can do for remaining
 Button.setImageDrawable(states);
于 2012-10-02T08:50:51.940 回答