0

我不确定我是否理解设备的图像和屏幕分辨率的不同可绘制文件夹的意义。我想将图像显示为以像素为单位的自然大小。但我要么让他们变小,要么变大!

我正在为平板电脑做游戏。我正在使用 Nexus 7 的 AVD 模拟器,屏幕为 7",分辨率为 1280 x 736 像素。我有一个 8 x 8 图像的网格。每个图像的宽度和高度大小为 80 像素。我绘制每个图像间隔为 80 像素。

当我将图像放在 drawable-hdpi 中时,它看起来不错,但是如果我将它们放在 drawable-mdpi 中,那么它们会相互重叠,但更大。

我还有一个 800 x 400 大小的介绍图像,当我将它放在 drawable-hdpi 中时,图像在屏幕上变得如此之小!但是当我将图像放在drawable-mdpi中时,它看起来还可以。我很困惑,因为它是相反的!

由于我的目标是平板电脑,将图像仅放在一个可绘制文件夹中还不够,但哪一个是正确的?是否具有不同文件夹的点,以像素为单位具有不同大小的宽度和高度的图像?

我已经阅读了很多关于此的内容,但我不明白!有人可以简要解释一下我应该如何处理这些文件夹、图像和分辨率以更好地理解它吗?

4

1 回答 1

0

甚至平板电脑也有不同的密度,请参阅此处的列表。

当您将图像放置在可绘制目录中时,您是在说“此图像适合这种密度的设备”。

如果您的图像在 -hdpi 中,而您的设备是 -hdpi,则不会发生缩放。

如果您的图像在 -hdpi 中,而您的设备是 -mdpi,Android 将尝试缩小它。

如果您的图像在 -hdpi 中,而您的设备是 -xhdpi,Android 将尝试放大它。

这就是您将同一张图像从一个文件夹移动到另一个文件夹时所看到的。Android 正在尝试根据它所在的文件夹以及设备的密度来确定要应用的缩放因子。

您可以在此处阅读有关比例因子的更多信息。

如果没有可用的匹配资源,则系统使用默认资源并根据需要将其放大或缩小以匹配当前屏幕尺寸和密度

“默认”资源是那些没有用配置限定符标记的资源。例如drawable/中的资源就是默认的drawable资源。系统假定默认资源是为基线屏幕尺寸和密度设计的,即正常屏幕尺寸和中等密度。因此,系统会酌情为高密度屏幕向上缩放默认密度资源,为低密度屏幕向下缩放。

但是,当系统在寻找特定密度的资源时,在特定密度的目录中没有找到它,它不会总是使用默认资源。系统可以改为使用其他特定于密度的资源之一,以便在缩放时提供更好的结果。例如,当寻找低密度资源并且它不可用时,系统更倾向于缩减资源的高密度版本,因为系统可以轻松地将高密度资源缩减为低密度与将中等密度资源缩放 0.75 倍相比,0.5 倍,工件更少。

于 2013-06-07T10:14:25.703 回答