Значок вкладки изменения Android

Я пытаюсь изменить значок вкладки при изменении состояния. Все работает правильно, если я использую drawable из следующего xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/d_selected" android:state_selected="true" /> <item android:drawable="@drawable/d_normal" /> </selector> 

Однако теперь мне нужно загружать изображения из папки данных / данных, и из этих изображений генерируются «d» и «dSel». Используя следующий код, отображается только «dSel», а другие изображения вкладок не отображаются! спасибо

  ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon); selector.addState(new int[]{ android.R.attr.state_pressed }, d); selector.addState(new int[]{ android.R.attr.state_selected }, dSel); selector.addState(new int[]{ android.R.attr.state_focused }, d); icon.setImageDrawable(selector); //icon.setImageResource(drawableId); used with other method described, if related to xml 

Наконец я нашел решение. Истина / ложь для каждого состояния обрабатывается символом «-».

 selector.addState(new int[]{ android.R.attr.state_selected }, dSel); selector.addState(new int[]{ -android.R.attr.state_selected }, d); 

Обратитесь к этой ссылке для получения дополнительной информации, Android: как программно обновить селектор (StateListDrawable)