2012-12-06 6 views
25

Mam obraz w dwóch różnych kolorach, odpowiadający dwóm różnym motywom w systemie Android. Chcę ich użyć na pasku akcji. Chcę odwoływać się do rysowania ikony, agnostyki tematycznej, ale mam to odniesienie do rysowania dla jasnego koloru dla motywu świetlnego i ciemnego dla motywu świetlnego.Zmiana możliwa do skopiowania na podstawie motywu

W menu:

<item 
     android:id="@+id/menu_attach_existing_picture" 
     android:icon="@drawable/buttonface_picture" 
     android:showAsAction="always" 
     android:title="@string/menu_attach_existing_picture"> 
    </item> 

Następnie w stylach chcę mieć coś, co odwzorowuje @ rozciągliwej/buttonface_picture do @ rozciągliwej/buttonface_picture_light w świetle motywu i @ rozciągliwej/buttonface_picture_dark dla ciemnego motywu.

Czuję, że musi być jakiś sposób, ale mam problem ze znalezieniem składni. Jeśli coś zmieni, używam ActionBarSherlock.

Odpowiedz

59

Wygląda na to, że zawsze jestem tylko wyszukiwarką Google lub dwie z dala od moich odpowiedzi. Rozwiązanie to jest:

w styles.xml

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

następnie w rzeczywistej motyw:

<item name="buttonface_picture">@drawable/buttonface_picture_dark</item> 

lub

<item name="buttonface_picture">@drawable/buttonface_picture_light</item> 

następnie w menu.xml:

<item 
    android:id="@+id/menu_attach_existing_picture" 
    android:icon="?attr/buttonface_picture" 
    android:showAsAction="always" 
    android:title="@string/menu_attach_existing_picture"> 
</item> 

The Accessing Resources Page w połączeniu z this SO w końcu udało mi się kliknąć w moim mózgu.