在Android中使用ImageButton状态的代码模仿Selector

时间:2012-11-18 18:36:12

标签: android imagebutton

我有一个ImageButton,其中源图像是从网络动态加载的。我的目标是根据按钮的状态(即state_pressed,state_focused ......)在图像上设置不同的滤色器。问题是我无法使用Selector,因为我的图像是动态加载的,不是可绘制的资源。 有没有人能给我一个线索如何使用代码识别状态并模仿选择器的工作?

1 个答案:

答案 0 :(得分:1)

您可以按照this SO post

中kcoppock的概述,以编程方式设置状态
Resources r = getResources();
StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed}, r.getDrawable(R.drawable.pressed));
states.addState(new int[] {android.R.attr.state_focused}, r.getDrawable(R.drawable.focused));
states.addState(new int[] {}, r.getDrawable(R.drawable.normal));

imageButton.setImageDrawable(states);