Android:通过代码更改按下/聚焦的资源

Waz*_*_Be 0 android focus pressed selected

我正在使用一些调整,允许用户使用SDCard的资源更改我的应用程序的UI.这很简单,没什么特别的,我只使用"setImageDrawable"或"setImageBitmap".

http://developer.android.com/reference/android/widget/ImageButton.html

这真的很酷,我的所有用户都乐于自定义UI.

但是现在,我想改变按钮的按下/聚焦资源!

现在,当他们点击它时,他们看不到任何东西,他们点击可能10次.更有问题的是,这不是很直观.

所以我想以编程方式改变压缩/聚焦状态......

Ani想法的建议?

Mon*_*der 5

您必须使所有ImageButton都具有StateListDrawable而不是BitmapDrawables.

ImageButton ib = new ImageButton(this);
StateListDrawable sl = new StateListDrawable();
sl.addState(new int[] { android.R.attr.state_enabled }, yourDefaultDrawableHere);
sl.addState(new int[] { android.R.attr.state_pressed, android.R.attr.state_selected }, yourImageDrawableHere);
ib.setImageDrawable(sl);
Run Code Online (Sandbox Code Playgroud)