2012-12-06 3 views
25

Tôi có một hình ảnh ở hai màu khác nhau, tương ứng với hai chủ đề khác nhau trong Android. Tôi muốn sử dụng chúng trong Action Bar của mình. Tôi muốn tham khảo một drawable cho biểu tượng, chủ đề bất khả tri, nhưng có tham chiếu drawable màu sắc ánh sáng cho chủ đề ánh sáng, và màu tối cho chủ đề ánh sáng.Thay đổi Bản vẽ Dựa trên Chủ đề

Trong 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> 

Sau đó, trong phong cách tôi muốn có một cái gì đó mà các bản đồ @ drawable/buttonface_picture để @ drawable/buttonface_picture_light trong chủ đề ánh sáng và @ drawable/buttonface_picture_dark cho chủ đề tối.

Tôi cảm thấy như có một cách, nhưng tôi gặp khó khăn khi tìm cú pháp. Nếu nó thay đổi bất cứ điều gì, tôi đang sử dụng ActionBarSherlock.

Trả lời

59

Dường như tôi luôn là một tìm kiếm của Google hoặc cách xa hai câu trả lời của tôi. Giải pháp là:

trong styles.xml

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

sau đó trong chủ đề thực tế:

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

hoặc

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

Sau đó, trong 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> 

Các Accessing Resources Page kết hợp với this SO cuối cùng đã nhận được nó để bấm vào trong bộ não của tôi.