Android 从系统中使用图标,而不是将它们复制到项目中

Android 从系统中使用图标,而不是将它们复制到项目中,android,Android,对于常见的Android图标(如上下文菜单图标),我通常会将标准的Android图标复制到我的项目中。我最近意识到,您也可以使用android.R.drawable.bla从系统中获取这些图标。所以我的问题是,有什么理由选择一种方法而不是另一种 如果使用系统的更好,那么如何在XML中访问它们 谢谢 最好将它们复制到您的项目中,因为系统图标不能保证保留在将来的版本中或保持相同的名称。将它们复制到您的项目中可以使您的应用程序在各个版本中具有一致的外观,并让您放心,您的图标将始终工作。最好将它们复制到

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

如果使用系统的更好,那么如何在XML中访问它们


谢谢

最好将它们复制到您的项目中,因为系统图标不能保证保留在将来的版本中或保持相同的名称。将它们复制到您的项目中可以使您的应用程序在各个版本中具有一致的外观,并让您放心,您的图标将始终工作。

最好将它们复制到您的项目中,因为系统图标不保证在将来的版本中保留或保持相同的名称。将它们复制到您的项目中可以使您的应用程序在各个版本中具有一致的外观和感觉,并让您放心,您的图标将始终工作。

您可以通过在“@android”前面加上前缀来访问它们,即:

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


如果使用系统资源,您将无法控制ressource的外观。您将在当前设备上安装ressource,这在不同的设备、制造商和android版本中有所不同。

您可以通过在“@android”前面加上前缀来访问它们,即:

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


如果使用系统资源,您将无法控制ressource的外观。您将在当前设备上安装ressource,这在不同的设备、制造商和android版本中有所不同。

参考系统图像

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

  • 好:将匹配操作系统级别(某些图标在迭代过程中会更改)
  • 好:可以很好地处理股票用户界面和自定义主题
  • 好:无需出示Apache2许可证(IANAL)
  • 坏:可能会破坏应用程序的外观
  • 错误:仅限于正式导出的图像
正如您所看到的,这两种解决方案都有缺点。例如,可以使用黑白浏览器图标来表示指向浏览器的链接。图标未正式导出,因此需要复制它。但在这种情况下,您必须遵守所用艺术品的许可证。这包括Android开源项目创建的内容的属性(有关详细信息,请参阅许可证文件副本)

在XML中的用法

您可以始终使用android:前缀来引用应用程序中的系统图标。例如

@android:drawable/ic_menu_add

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

参考系统图像

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

  • 好:将匹配操作系统级别(某些图标在迭代过程中会更改)
  • 好:可以很好地处理股票用户界面和自定义主题
  • 好:无需出示Apache2许可证(IANAL)
  • 坏:可能会破坏应用程序的外观
  • 错误:仅限于正式导出的图像
正如您所看到的,这两种解决方案都有缺点。例如,可以使用黑白浏览器图标来表示指向浏览器的链接。图标未正式导出,因此需要复制它。但在这种情况下,您必须遵守所用艺术品的许可证。这包括Android开源项目创建的内容的属性(有关详细信息,请参阅许可证文件副本)

在XML中的用法

您可以始终使用android:前缀来引用应用程序中的系统图标。例如

@android:drawable/ic_menu_add

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

我相信用户会欣赏他们设备上所有应用程序的一致性。这是全有或全无。如果您使用的是系统提供的所有图标,您将确保设备上所有应用程序的外观和感觉都一致。如果你主要使用系统提供的图标和一些你自己设计的适合…那么,适合什么设备?如果您对某些项目使用自定义图标,确保一致外观的唯一方法是对所有项目使用自定义图标。我相信用户会欣赏他们设备上所有应用程序的一致外观。这是全有或全无。如果您使用的是系统提供的所有图标,您将确保设备上所有应用程序的外观和感觉都一致。如果你主要使用系统提供的图标和一些你自己设计的适合…那么,适合什么设备?如果对某些项目使用自定义图标,确保外观一致的唯一方法是对所有项目使用自定义图标。