2010-07-19 34 views
0

我正在使用一些调整,允许用户使用他们的SDCard中的资源更改我的应用程序的UI。这很简单,没什么特别的,我只是使用“setImageDrawable”或“setImageBitmap”。Android:通过代码更改按下/集中的资源

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

这真的很酷,我的所有用户都乐于定制UI。

但现在,我想也改变按钮的按下/集中的资源!

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

所以我想通过编程也改变压/聚焦状态......

阿尼想法建议吗?

回答

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);