【问题标题】:Why shouldn't I use the menu icons provided by the OS?为什么我不应该使用操作系统提供的菜单图标?
【发布时间】:2011-09-15 01:57:36
【问题描述】:

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

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

我认为使用默认图标的全部意义在于设计确实从操作系统更改为操作系统。通过使用默认图标,您的应用程序的外观和感觉都适合其运行的操作系统。那么使用默认图标有什么不好呢?似乎使用默认图标会损害应用程序的外观。

【问题讨论】:

    标签: android


    【解决方案1】:

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

    【讨论】:

    • 我认为这就是为什么你有一个 min、target 和 max sdk
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果您的操作与操作系统执行的相关操作稍有不同,我真的想不出什么理由不这样做。对于一个夸张的例子,如果你有你的垃圾桶按钮是你创建新小部件的地方。但我认为,如果您保持与操作系统类似的操作,那么您就可以了。事实上,我同意你的看法,它甚至可能更适合该应用程序。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          • 我以为每个安卓版本都有不同的风格。
          • 这不是功能,而是可用性问题。
          【解决方案6】:

          它也可以从 android 版本到另一个 android 版本.. 所以最好包括你自己的图标集

          【讨论】:

          • 这就是重点。我希望它因版本而异,以便我的应用在美学上适合。
          猜你喜欢
          • 1970-01-01
          • 2012-06-12
          • 2011-10-07
          • 1970-01-01
          • 2023-01-05
          • 1970-01-01
          • 2012-02-06
          • 1970-01-01
          • 2021-11-26
          相关资源
          最近更新 更多