Программно установить изображение на основе темы в Android - PullRequest
3 голосов
/ 05 августа 2011

Я хочу установить источник изображения ImageView на основе текущей темы.У меня определены две темы, и у каждой есть значок для ImageView.

У меня есть следующие параметры в themes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.Android">
        <item name="tabIconContacts">@style/tabContacts_Android</item>
    </style>
    <style name="Theme.Earthy">
        <item name="tabIconContacts">@style/tabContacts_Earthy</item>
    </style>
</resources>

в attr.xml:

<attr name="tabIconContacts" format="reference" />

и следующее в styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="tabContacts_Earthy">
        <item name="android:src">@drawable/theme1_tab_contacts</item>
    </style>
    <style name="tabContacts_Android">
        <item name="android:src">@drawable/theme2_tab_contacts</item>
    </style>
</resources>

, и я применяю его с setTheme() в верхней части onCreate().Настройка фонового изображения для ресурсов, определенных в XML, работает нормально.Я изо всех сил пытаюсь найти хороший способ установки изображения в следующем коде:

LayoutInflater li = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View tabIndicator = li.inflate(R.layout.tab_indicator, mTabHost.getTabWidget(), false);
ImageView iconView = (ImageView) tabIndicator.findViewById(R.id.icon);
iconView.setImageResource( R.style.tabIconContacts ));

Можно ли таким способом поменять ресурсы для рисования?Я нашел много статей, в которых упоминается obtainStyledAttributes, но, похоже, они не относятся к этой ситуации.

Я также не могу установить изображение в определении XML tab_indicator, потому что значок меняется с каждымвкладка и каждая тема (всего около 12 иконок).

Любая помощь будет принята с благодарностью.

...