如何使用默认的Android drawables

时间:2010-07-08 08:01:01

标签: android drawable

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

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

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

6 个答案:

答案 0 :(得分:97)

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

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

答案 1 :(得分:34)

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

  

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

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

答案 2 :(得分:21)

最好将它们复制并移动到您自己的资源中。以前的Android版本可能无法使用某些资源。 Here is a link感谢@fiXedd

,每个Android版本都提供所有drawable

答案 3 :(得分:20)

如果您阅读有关Android开发小组的任何讨论,您会发现他们不鼓励使用公共SDK中没有的任何内容,因为其余内容会发生重大变化。

答案 4 :(得分:7)

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

导入它
import android.R;

但如果您想使用它,我会让您自己的资源出错。 错误将类似于:

  

R上。无法解决

所以,我不想import android.R而是import *my.own.package*.R;

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

答案 5 :(得分:3)

最好使用android.R.drawable,因为它是公开的并且有文档记录。