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

时间:2010-07-19 22:54:12

标签: android focus selected pressed

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

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

这真的很酷,我的所有用户都乐于自定义用户界面。

但是现在,我还要更改按钮的按下/聚焦资源!

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

所以我想以编程方式更改按下/聚焦状态......

Ani想法建议?

1 个答案:

答案 0 :(得分: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);