为什么我不应该使用操作系统提供的菜单图标?

我想使用Android操作系统提供的一些默认的菜单图标。

安卓菜单图标

XML将是这样的:

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

但是文件说这是没有人接受的。

警告:由于这些资源可以在平台版本之间更改,因此不应使用Android平台资源ID(即android.R.drawable下的菜单图标)引用这些图标。

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

Solutions Collecting From Web of "为什么我不应该使用操作系统提供的菜单图标?"

问题是,你正在添加一个依赖,谷歌不保证将是静态的。
这些图标的名称可能会更改,大小可能会改变,并与您的应用程序不兼容。
如果你想让图标与当前的图标相同,你可以使用这里提供的图标

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

你可以做的是在你的sdkFolder / platforms / platform – #/ data / res /中find你想要的drawable,并把它们放到你的项目中。 然后像任何常规资源(@ drawable / icon)一样引用它们。

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

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

问题是每个运营商或工厂对操作系统的“定制”,所以你不能假设他们存在或匹配使用。 无论如何,如果你喜欢它们,你可以将它们复制到你的drawable中,因为无论定制如何,它们都将是标准的。

此外,它可以从Android版本到另一个Android版本有所不同。因此,最好是包括您自己的一套图标