60

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

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

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

4

6 回答 6

110

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

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

于 2013-05-02T18:55:13.493 回答
35

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

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

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

于 2010-07-08T11:52:03.563 回答
23

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

于 2010-07-08T12:55:36.560 回答
21

最好将它们复制并移动到您自己的资源中。某些资源在以前的 Android 版本上可能不可用。感谢@fiXedd,这是每个Android版本上可用的所有drawable的链接

于 2010-07-08T09:51:13.433 回答
7

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

import android.R;

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

R. 无法解决

import android.R所以,我宁愿不但是import *my.own.package*.R;

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

于 2011-07-29T04:33:33.957 回答
3

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

于 2010-07-08T08:11:37.910 回答