2010-07-30 87 views
0

我有一个图像选择器的“按下”状态设置为特定的可绘制。我想让用户有机会即时改变这一点。但是,我发现没有办法以编程方式获取和修改选择器。即时更改选择器?

这是不支持的东西?

回答

1

选择器像所有Android资源一样,通过一些编译时处理来优化XML以实现高效的运行时解析。您无法动态编辑您建议的资源。 AFAIK AFAIK实现你想要的唯一方法是手动在自定义图像选择器中实现可绘制选择(没有太多乐趣)或限制用户选项,并有一个预先构建的选择器集合,您可以在用户的自由裁量权。

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

这对我的帮助lottt !!!!谢谢 – 2013-04-20 05:51:55