2011-06-14 79 views
16

我想使用Android操作系统提供的一些默认菜单图标。为什么我不应该使用操作系统提供的菜单图标?

android menu icons

的XML将是这样的:

<item android:id="@+id/menu_refresh" 
    android:icon="@android:drawable/ic_menu_refresh" 
    android:title="@string/menu_refresh" /> 

documentation说,这是轻率。

警告:由于这些资源平台版本之间 变化,你 不应该参考使用 Android平台的资源ID 这些图标(即菜单图标下 android.R.drawable)。

我想使用默认图标的整点是因为设计确实变化从OS到OS。通过使用默认图标,您的应用程序将看起来适合它所运行的操作系统。那么使用默认图标有什么不好?这似乎是不是使用默认图标会伤害应用程序的外观。

回答

11

的问题是,你是在一个依赖,谷歌并不能保证将增加静态的。
这些图标的名称可能会更改,大小可能会更改并与您的应用程序不兼容。
如果你想要的图标是与当前谷歌的人,你可以使用现有的那些here

+0

我认为这就是为什么你有一个分钟,目标和最大sdk – Dane411 2014-11-07 15:42:48

+2

该链接已死亡... – katzenhut 2015-07-29 13:37:07

0

我真的不能想到一个理由,除非你的操作做的事与操作系统所做的相关操作略有不同,对于一个暴露的实例,如果你的垃圾桶按钮是你创建新窗口小部件的地方。但我认为如果你保持的操作类似于操作系统的操作,那么你很好。事实上,我同意你的看法,它甚至可能会更好的应用程序。

0

问题在于每个运营商或工厂对操作系统所做的“定制”,因此您不能认为它们存在或与使用相符。无论如何,如果你喜欢它们,你可以将它们复制到你的drawable中,因为无论定制它们都会看起来很标准。

+0

我以为每个Android版本都有不同的风格。 – JoJo 2011-06-14 22:45:08

+0

这不是一个功能,这是一个可用性问题。 – AlfredoVR 2011-06-15 00:50:15

3

这是非常可能的一些配置的Android将不会有这些资源阅读:HTC Sense,三星TouchWiz。

你可以做的是在你的sdkFolder/platforms/platform - #/ data/res /中找到你想要的drawable,并将它们放到你的项目中。然后按照任何常规资源(@ drawable/icon)引用它们。

0

此外,它可以从Android版本的不同而不同Android版本..所以这将是最好的,包括你自己的一套图标

+2

这就是要点。我**要**它根据不同的版本而有所不同,所以我的应用程序美观适合。 – JoJo 2011-06-14 22:43:42

1

IMO,实际上,你可以使用Android操作系统提供的菜单图标,只要您只使用提供的图标操作系统为您的所有菜单项。如果您需要另一个图标(例如refresh),则还需要复制其他图标的图像。否则,如果您混用自己的操作系统图标,某些设备上的视觉样式可能会有很大差异。

相关问题