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

问题描述

| 我想使用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)。 我认为使用认图标的全部目的是因为设计确实会因操作系统而异。通过使用认图标,您的应用将在外观和感觉上适合其所运行的操作系统。那么使用认图标有什么不好呢?似乎不使用认图标会损害应用程序的外观。     

解决方法

        问题是您要添加Google不保证其为静态的依赖项。 这些图标的名称可能会更改,大小可能会更改并与您的应用程序不兼容。 如果您希望图标与当前的Google图标相同,则可以使用此处提供的图标     ,        很有可能,某些android配置不会读取这些资源:HTC Sense,Samsung TouchWiz。 您可以做的是在sdkFolder / platforms / platform-#/ data / res /中找到所需的可绘制对象并将其放入项目中。然后像引用任何常规资源(@ drawable / icon)一样引用它们。     ,        IMO,实际上,您可以使用Android OS提供的菜单图标,只要您对所有菜单项仅使用OS提供的图标即可。如果需要另一个图标(例如刷新),则还需要复制其他图标的图像。否则,如果混合使用自己的图标和OS图标,则某些设备上的视觉样式可能会大不相同。     ,        除了您的操作与OS的相关操作略有不同之外,我真的没有别的原因。对于夸大的实例,如果您有“垃圾桶”按钮,则可以创建新的小部件。但是我认为,如果您保持与操作系统相似的操作,那很好。实际上,我同意您的看法,对于该应用程序来说,它甚至看起来更好。     ,        问题在于每个运营商或工厂对操作系统进行的“自定义”,因此您不能假定它们存在或与用途匹配。无论如何,如果您喜欢它们,则可以将它们复制到您的可绘制对象中,因为无论定制如何,它们看起来都是标准的。     ,        而且它的版本可能因Android版本而异,因此可能会有所不同。因此最好包含自己的图标集     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...