上下文: 我正在开发一个用于平板电脑(横向)的 Android 应用程序,其图像资源的分辨率为 1920x1200。该分辨率适合以下屏幕尺寸和密度:
drawable-xlarge-hdpi
drawable-large-xhdpi
问题: 如果我在这两个文件夹中包含所有重复的图像资源,则 APK 的最终大小将不必要地大
我不成功的方法: 我尝试对此处定义的此可绘制对象使用 Alias: http://developer.android.com/guide/topics/resources/providing-resources.html#AliasResources
我的图片资源在:
res/drawable-nodpi/image_cmn.png
以及相应屏幕尺寸和密度文件夹中的两个别名:
res/drawable-xlarge-hdpi/image.xml
res/drawable-large-xhdpi/image.xml
图像.xml:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/image_cmn" />
当然,当我在布局文件中使用我的图像时,我引用了别名:
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/image" />
但遗憾的是,Android 没有为我的测试平板电脑 (mdpi) 正确调整资源大小,结果是我有更大的图像。
我试图将原始 png 移动到 res/drawable 甚至 res/raw 但结果与 res/drawable-nodpi.
如果我将此 png 移动到 res/drawable-xlarge-hdpi(与 xml 别名相同),结果是正确的,但自然这不能解决我的问题,因为我还必须将它们复制到res/drawable-large-xhdpi 和 apk 大小增加。
有人知道如何实现吗?
最佳答案
我尽量避免在 ImageViews 上使用 wrap_content,因为不同的平台版本会以不同的方式调整图像大小,如果您在 dp 中放置明确的宽度和高度,那么选择哪个图像并不重要。
在你的情况下,我会在 drawable/xhdpi 中有一个图像。在 dp 的布局文件中指定它的宽度和高度。对于 layout_width="960dp"layout_height="600dp"
的 1920x1200px 图像图像在超大平板电脑上的物理尺寸与大平板电脑大致相同。
如果您希望图像在超大平板电脑上更大,请包含第二个布局文件,其中图像的宽度和高度增加但保持相同的图像。
或者,您可以使用 large 和 x-large 之间不同的维度资源。
关于android - 在 Android 上针对不同的屏幕尺寸和密度重复使用可绘制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25220152/