Android расширяет селектор XML для использования в StateListDrawable

Можно ли расширить селектор, созданный в XML, для программного использования StateListDrawable?

Я обнаружил, что StateListDrawable имеет метод inflate, но не нашел примеров использования.

Это было бы неплохо, чтобы избежать сделал это:

StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed}, getResources().getDrawable(R.drawable.pressed));
states.addState(new int[] {android.R.attr.state_focused}, getResources().getDrawable(R.drawable.focused));
states.addState(new int[] { }, getResources().getDrawable(R.drawable.normal));
imageView.setImageDrawable(states);

Кто-нибудь знает, возможно ли это, и привести пример?

Заранее спасибо.


person Jorge Gil    schedule 25.08.2013    source источник


Ответы (1)


Это возможно, конечно. Вы найдете больше информации о каждом другом доступном чертеже в документации для State список. Я надеюсь, что этот ответ пригодится кому-нибудь даже через шесть лет.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/focused"
          android:state_focused="true" />
    <item android:drawable="@drawable/normal" />
</selector>
person tynn    schedule 09.06.2019