如何使用默认的Android drawables

Cat*_*san 55 android drawable

使用默认Android drawables时最好的方法是什么?我应该使用android.R.drawable或应该在我的项目中复制drawables并使用R.drawable

是否有任何风险,在较新版本的Android中,某些默认的drawable被删除或调整大小?或者,以某种消极方式影响,我的应用程序的外观?此外,Android源代码中哪些drawables被认为是"稳定的",应该依赖?

我宁愿不复制drawables因为我认为应用程序的外观应与所使用的Android版本一致.因此,例如,对于版本1.6,它应该使用版本1.6的默认Android位图.

Amj*_*Saa 100

Java用法示例: myMenuItem.setIcon(android.R.drawable.ic_menu_save);

资源使用示例: android:icon="@android:drawable/ic_menu_save"

  • 这正好回答了这个问题。 (2认同)

小智 35

据我所知,文档建议不要直接使用android.R.drawable中的菜单图标,并建议将它们复制到drawables文件夹中.主要原因是这些图标和名称可能会发生变化,并且可能在将来的版本中不可用.

警告:由于这些资源可以在平台版本之间更改,因此您不应使用Android平台资源ID(即android.R.drawable下的菜单图标)引用这些图标.如果要使用任何图标或其他内部可绘制资源,则应将这些图标或可绘制的本地副本存储在应用程序资源中,然后从应用程序代码中引用本地副本.这样,即使系统的副本发生变化,您也可以保持对图标外观的控制.

来自:http://developer.android.com/guide/practices/ui_guidelines/icon_design_menu.html

  • 请注意,一些可绘制的产品会被制造商修改,并且在不同的手机上看起来会有所不同.Motoblur使用红色突出显示而不是橙色,因此如果你制作副本,那么像复选标记和按钮(其中一些甚至在R.drawable中)的可绘制内容将不一致. (2认同)
  • Google从图标设计菜单指南中删除了该警告.不知道为什么以及思维是否仍然存在? (2认同)

and*_*rkz 22

如果您阅读有关Android开发组的任何讨论,您将看到他们不鼓励使用公共SDK中没有的任何内容,因为其余的内容会有很大的变化.

  • 所以,基本上,http://developer.android.com/reference/android/R.drawable.html中的任何内容都可以直接使用而无需复制? (5认同)
  • 虽然技术上正确的是SDK中没有的东西可以改变,但有些东西不太可能改变,如果你真的需要,你可以逃脱它.最安全的做法是将您需要的图像文件从anroid源复制到您自己的可绘制目录中,但这意味着如果他们发布具有不同图像的新版Android,您的应用程序将看起来很旧. (4认同)

ggo*_*eze 21

更好的是复制并将它们移动到您自己的资源.以前的Android版本可能无法使用某些资源.由于@fiXedd,这里是每个Android版本上可用的所有drawable 的链接

  • 所有链接都坏了:( (3认同)
  • 链接已损坏。请您在回答中解释它的内容或将超链接重定向到正确的位置。 (2认同)
  • androiddrawables 网站已关闭,域名被垃圾邮件发送者窃取:( (2认同)

ric*_*lin 7

要使用默认的android drawable资源,不需要复制任何东西..你可以先导入它...

import android.R;
Run Code Online (Sandbox Code Playgroud)

但如果你想使用它,我会让自己的资源出错.错误将是这样的:

R.无法解决

所以,我不喜欢import android.R,但import *my.own.package*.R;

然后,当我可以正常使用我自己的资源R.drawable.*something*没有错误,并android.R.*something_default*使用默认的android资源.