0

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

4

1 回答 1

1

您可以按照 kcoppock 在此 SO 帖子中概述的方式以编程方式设置状态

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);
于 2012-11-18T18:53:50.770 回答