使用系统中的图标与将其复制到项目中

时间:2011-07-03 22:29:01

标签: android

对于常见的Android图标(例如上下文菜单图标),我通常会将标准的Android图标复制到我的项目中。我最近意识到你也可以使用android.R.drawable.blablabla从系统中获取这些图标。所以我的问题是,有没有理由更喜欢一种方法而不是另一种方法?

如果使用系统更好,你如何用XML访问它们?

谢谢!

3 个答案:

答案 0 :(得分:7)

您可以通过添加'@android'来访问它们,即:

<Image android:src="@android:drawable/ic_menu_add" android:layout_height="wrap_content" android:layout_width="wrap_content"/>

如果您使用系统资源,您将无法控制资源的确切外观。您将获得在当前设备上安装的ressource,这在整个设备,制造商和Android版本中都有所不同。

答案 1 :(得分:6)

参考系统图片

一般建议是尽可能参考系统图像

  • GOOD:将匹配操作系统级别(某些图标在迭代期间会发生变化)
  • 好:可以很好地使用库存用户界面和自定义主题
  • GOOD:无需显示Apache2许可证( IANAL
  • 坏:可能会破坏您应用的外观
  • BAD:仅限于正式导出的图片

正如您所看到的,两种解决方案都有缺点。例如,您可以使用黑白浏览器图标来表示浏览器的链接。图标未正式导出,因此您需要复制它。但在这种情况下,您必须遵守所用艺术品的许可。这包括归因于Android开放源代码项目创建的内容(有关详细信息,请参阅许可证文件副本)

XML中的用法

您始终可以使用android:前缀来引用应用中的系统图标。一个例子是

@android:drawable/ic_menu_add

这也适用于字符串和其他资源,例如“OK”文本。

答案 2 :(得分:3)

最好将它们复制到您的项目中,因为系统图标不能保证在将来的版本中保留或保持相同的名称。将它们复制到您的项目中可以让您的应用程序在整个构建过程中保持一致的外观和感觉,让您高枕无忧,您的图标将始终有效。