动态改变选择器?

时间:2010-07-30 17:19:51

标签: android

我有一个图像选择器,其“按下”状态设置为特定的drawable。我想让用户有机会随时更改。但是,我发现无法以编程方式获取和修改选择器。

这是不受支持的吗?

2 个答案:

答案 0 :(得分:2)

您可以使用StateListDrawable动态修改选择器。

以下是代码:

StateListDrawable state_up = new StateListDrawable();
        state_up.addState(new int[] {android.R.attr.state_pressed},getResources().getDrawable(R.drawable.btn_up_cyan));
        state_up.addState(new int[] {android.R.attr.state_focused},getResources().getDrawable(R.drawable.btn_up_cyan));
        b1.setBackgroundDrawable(state_up); 

答案 1 :(得分:1)

选择器与所有Android资源一样,经过一些编译时处理,优化XML以实现高效的运行时解析。您不能像您建议的那样动态编辑资源。

AFAIK实现您想要的唯一方法是在自定义图像选择器中手动实现可绘制选择(不是很有趣)或限制用户选项,并有一个预先构建的选择器集合,您可以在用户自行决定。