Android中ImageButton状态的代码模拟选择器

Android中ImageButton状态的代码模拟选择器,android,imagebutton,Android,Imagebutton,我有一个ImageButton,其中源图像是从网络动态加载的。我的目标是根据按钮的状态(即按下状态、聚焦状态……)在图像上设置不同的滤色器。问题是我不能使用选择器,因为我的图像是动态加载的,不是可绘制的资源。 有人能告诉我如何使用代码识别状态并模仿选择器的工作吗?您可以按照KCopock在 由于您有动态图像,因此如果r.getDrawable(…)使用Drawable.createFromPath(路径名)@antwe,这似乎是一个好的开始,但是如何设置颜色过滤器呢?在同一个绘图表上调用“set

我有一个
ImageButton
,其中源图像是从网络动态加载的。我的目标是根据按钮的状态(即按下状态、聚焦状态……)在图像上设置不同的滤色器。问题是我不能使用
选择器
,因为我的图像是动态加载的,不是可绘制的资源。
有人能告诉我如何使用代码识别状态并模仿选择器的工作吗?

您可以按照KCopock在


由于您有动态图像,因此如果
r.getDrawable(…)
使用
Drawable.createFromPath(路径名)
@antwe,这似乎是一个好的开始,但是如何设置颜色过滤器呢?在同一个绘图表上调用“setColorFilter”似乎没有效果。@Ridcully:我忘了感谢你的评论,它完成了回答。所以-谢谢:)
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);