我希望菜单项根据api级别使用不同的drawable:
// my_menu.xml
<menu>
<item android:icon="@style/foo"/>
</menu>
// values/styles.xml
<drawable name="foo">@drawable/apple</drawable>
// values-v11/styles.xml
<drawable name="foo">@drawable/orange</drawable>
似乎没有用 - 有没有办法做到这一点?
谢谢
-------------更新------------------
好好再读一遍后,我就这样做了:
// my_menu.xml
<menu>
<item style="@style/foo"/>
</menu>
// values/styles.xml
<style name="foo">
<item name="android:icon">@drawable/apple</item>
</style>
// values-v11/styles.xml
<style name="foo">
<item name="android:icon">@drawable/orange</item>
</style>
我认为这是lxx的建议。
答案 0 :(得分:2)
您可以在代码中夸大菜单后以编程方式执行此操作。
onCreateWhateverMenu(Menu menu){
///inflate menu
...
MenuItem item = menu.findItem(itemId)
if(Build.VERSION.SDK_INT == <insert API level>){
item.setIcon(your Drawable);
}
else{
item.setIcon(other Drawable);
}
...
}
希望这有帮助。