Как ссылаться на рисунок в стиле

В моем приложении с вкладками есть две темы. На вкладках каждой темы разные изображения в выбранном и невыбранном состоянии. Как я могу правильно ссылаться на изображение по теме?

Например. У меня есть темы .xml

<?xml version="1.0" encoding="utf-8"?> <style name="LightTheme" parent="@android:style/Theme.Light"> <item name="tabShows">@drawable/ic_tab_shows_unselected_light</item> <item name="tabShowsSelected">@drawable/ic_tab_shows_selected_light</item> <item name="tabNews">@drawable/ic_tab_news_selected_light</item> <item name="tabNewsSelected">@drawable/ic_tab_news_unselected_light</item> </style> <style name="DarkTheme" parent="@android:style/Theme.Black"> <item name="tabShows">@drawable/ic_tab_shows_unselected_dark</item> <item name="tabShowsSelected">@drawable/ic_tab_shows_selected_dark</item> <item name="tabNews">@drawable/ic_tab_news_selected_dark</item> <item name="tabNewsSelected">@drawable/ic_tab_news_unselected_dark</item> </style> 

Также у меня есть tab_shows.xml и tab_news.xml

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

Как я могу ссылаться на необходимый образ в селекторе в соответствии с текущей темой? Это не работает для меня

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="?tabShowsSelected"/> <item android:state_selected="false" android:drawable="?tabShows" /> 

В файлах макетов это работает, я имею в виду ссылку на стиль через? StyleName

    Постройте свой стиль A и стиль B

    В вашем случае вы помещаете android:drawable="@drawable/ic_tab_shows_selected_light" вместо фона (я просто скопировал snipets из своего кода) # 000

      <style name="styleB"> <item name="android:background">#000</item> </style> 

    Ваша тема A

     <style name="Theme.A"> <item name="pageBackground">@style/styleA</item> </style> 

    Тема B

     <style name="Theme.Blue"> <item name="pageBackground">@style/styleB</item> </style> 

    В вашем attr.xml

     <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="pageBackground" format="reference" /> </resources> 

    Наконец, в вашем виджете вы делаете style="?pageBackground"

    Вы можете найти свой ответ здесь http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html

    редактировать
    (Дополнительная информация Lukap в комментариях)

    1. Определите одну или несколько тем в themes.xml и задайте определения своих стилей.
    2. Определите пользовательские атрибуты, например пользовательские стили, в attrs.xml .
    3. Опишите, каковы значения ваших пользовательских стилей в styles.xml .

    Но вам нужно больше узнать о attrs.xml

     <item name="android:background">? android:attr/activatedBackgroundIndicator</item> </style> 

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