2010-07-30 3 views
0

У меня есть селектор изображений, который имеет «нажатое» состояние, установленное для конкретного вытягиваемого. Я хочу дать пользователю возможность изменить это на лету. Однако я не нашел способа программно получить и изменить селектор.Изменить селектор на лету?

Это что-то, что не поддерживается?

ответ

1

Селекторы. Как и все ресурсы Android, выполните некоторую обработку времени компиляции, которая оптимизирует XML для эффективного анализа времени выполнения. Вы не можете динамически редактировать ресурсы, как вы предлагаете.

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 !!!! благодаря –

Смежные вопросы