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

时间:2011-06-14 21:41:42

标签: android

我想使用Android OS提供的一些默认菜单图标。

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)。

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

6 个答案:

答案 0 :(得分:11)

问题在于您添加的是谷歌不保证会是静态的依赖项 这些图标的名称可能会更改,大小可能会更改,并与您的应用程序不兼容 如果您希望图标与当前的图标相同,则可以使用可用的图标here

答案 1 :(得分:3)

很有可能某些配置的android不会读取这些资源:HTC Sense,Samsung TouchWiz。

您可以做的是在sdkFolder / platforms / platform中找到您想要的drawable - #/ data / res /并将它们放入您的项目中。然后像任何普通资源一样引用它们(@ drawable / icon)。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我真的想不出一个理由,除了你的操作做的事情与操作系统的相关操作略有不同之外。对于一个夸大的实例,如果您将垃圾桶按钮设置为创建新窗口小部件的位置。但我想如果你保持操作类似于操作系统,那你就没事了。事实上,我同意你的意见,甚至可能看起来更适合应用程序。

答案 4 :(得分:0)

问题在于每个运营商或工厂对操作系统进行的“自定义”,因此您无法假设它们存在或与使用相匹配。无论如何,如果你喜欢它们,你可以将它们复制到你的drawables,因为它们看起来都是标准的,无论自定义。

答案 5 :(得分:0)

它也可以从Android版本到另一个Android版本不等。所以最好包含你自己的一套图标