【发布时间】:2012-09-04 12:04:58
【问题描述】:
我正在编写一个 android 应用程序,我想在这个应用程序中使用系统图标来显示邮件、电话、日历和联系人。问题是,这些图标因系统而异(不同的 android 版本和不同的智能手机),我想保持应用程序和系统一致。有没有简单的方法来实现这一点?
【问题讨论】:
-
我不明白,你想使用系统资源,但是你希望无论系统的资源都一样吗?
我正在编写一个 android 应用程序,我想在这个应用程序中使用系统图标来显示邮件、电话、日历和联系人。问题是,这些图标因系统而异(不同的 android 版本和不同的智能手机),我想保持应用程序和系统一致。有没有简单的方法来实现这一点?
【问题讨论】:
在 XML 中使用来自 @android:drawable/... 的默认 android drawable,在代码中使用 android.R.drawable....
【讨论】:
您可以使用标准可绘制对象 @android:drawable/[icon_name] 在你的 xml 文件中 android.R.drawable.[icon_name] 在你的 java 代码中
您可以在文件系统中看到不同的图标 [SDK 路径]/platforms/platforms/[ANDROID_VERSION]/data/res
有些图片是标准的...比如联系人、日历 :)
【讨论】:
您无法保持系统一致。为了什么?新版本的 Android 通常比旧版本更漂亮(嗯,这是我的看法)。
为您的应用保持系统图标相同的唯一方法 - 将它们复制到您的可绘制对象中,而不是使用直接引用它们(如 @android:drawable/)。
【讨论】:
首先,如果您打算为 mail 、 phonr 等使用默认图像(图标)。
此默认值可用作代码中的android.R.drawable.name 或来自http://docs.since2006.com/android/2.1-drawables.php 的xml 中的@android:drawable/
但这会因操作系统版本而异。
因此,如果您需要为所有版本和设备的应用使用独特的 GUI。
请不要使用 android 提供的图像,只需使用您自己的图形或您在可绘制资源中为您的应用明确提供的图像。
【讨论】:
如果您对每个系统的图标都满意,您可以通过 PackageManager 和 getApplicationInfo 方法获取它。
如果不是,您应该将平台上的资源复制到您自己的应用程序中。
【讨论】: