根据状态:
,这是我用来更改应用中按钮图像的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)。
如何以正确的方式使用此方法?
答案 0 :(得分: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);