强制主题为@android:drawables支持低级API

时间:2013-04-04 08:15:42

标签: android android-drawable

有没有办法强制使用@android:drawable/ic_menu_send等系统资源的按钮与我选择的背景?

默认为:

ic_menu_send light

我想要的是:enter image description here

2 个答案:

答案 0 :(得分:2)

我建议您使用Google提供的“Action Bar Icon Pack”中的所需图标 在http://developer.android.com/design/style/iconography.html#action-bar

上引用

在那里,您会找到6_social_send_now.pngholo_light主题的图标holo_dark

Mark L. Murphy在"The Busy Coder's Guide to Android"中提到了不直接从SDK引用系统图标的一个原因:“然而,存在风险:欢迎设备制造商用他们自己的艺术品替换这些可绘制的产品。”那些可能不适合您应用中的其他(自制)图标。

答案 1 :(得分:0)

您是否尝试以“?”开头的style attributes?android:drawable/ic_menu_send

<强>更新

看起来并不那么容易。首先,您必须检查SDK资源中有哪个drawables条目,例如:查看Android SDK安装的文件夹android-sdk/platforms/android-15/data/res。在那里,grep可以drawable

在以下示例中,我们发现ic_menu_sendthemes.xml没有条目(仅在public.xml中),因此attrs.xml中没有相应属性的条目。

可行的drawable是ic_menu_share我们可以在themes.xmlattrs.xml找到条目,以便我们可以通过以下方式使用style属性android:src="?android:actionModeShareDrawable"

jh@jh-aspire:/opt/android-sdk/platforms/android-15/data/res$ grep -r ic_menu_send *
values/public.xml:  <public type="drawable" name="ic_menu_send" id="0x01080050" />

jh@jh-aspire:/opt/android-sdk/platforms/android-15/data/res$ grep -r ic_menu_share *
values/public.xml:  <public type="drawable" name="ic_menu_share" id="0x01080052" />
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_dark</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_light</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_dark</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_light</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_dark</item>

jh@jh-aspire:/opt/android-sdk/platforms/android-15/data/res$ grep -r actionModeShareDrawable *
menu/webview_copy.xml:        android:icon="?android:attr/actionModeShareDrawable"
values/attrs.xml:        <attr name="actionModeShareDrawable" format="reference" />
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_dark</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_light</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_dark</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_light</item>
values/themes.xml:        <item name="actionModeShareDrawable">@android:drawable/ic_menu_share_holo_dark</item>