我不确定我理解设备的图像和屏幕分辨率的不同可绘制文件夹的重点。我想以像素为单位显示自然大小的图像。但我要么把它们变成小型还是大型的!
我正在为平板电脑做游戏。我正在使用Nexus 7的AVD仿真器,7英寸屏幕,分辨率为1280 x 736像素。我有一个8 x 8图像的网格。每个图像的宽度和高度都是80像素。我绘制每个图像间隔为80像素。
当我将图像放在drawable-hdpi中时它看起来没问题,但如果我将它们放在drawable-mdpi中,那么它们会相互重叠,但会更大。
我还有一个大小为800 x 400的介绍图像,当我将它放在drawable-hdpi中时,图像在屏幕上变得如此之小!但是当我将图像放在drawable-mdpi中时,它看起来还不错。我很困惑,因为它是对立的!
由于我的目标是平板电脑,仅仅将图像放在一个可绘制文件夹中是不够的,但哪一个是正确的?是否有不同文件夹的点,以像素为单位的宽度和高度不同的图像?
我已经阅读了很多关于此的内容,但我不明白!有人可以简要解释我应该如何处理这个文件夹,图像和分辨率以更好地理解它?
答案 0 :(得分:0)
即使是平板电脑也有不同的密度,请参阅列表here。
当您将图像放在可绘制目录中时,您会说,“此图像适用于此密度的设备。”
如果您的图片位于-hdpi,并且您的设备是-hdpi,则不会进行缩放。
如果您的图片位于-hdpi,并且您的设备是-mdpi,则Android会尝试将其缩小。
如果您的图片位于-hdpi,并且您的设备是-xhdpi,则Android会尝试将其展开。
当您将同一图像从一个文件夹移动到另一个文件夹时,您会看到这一点。 Android正在尝试计算要应用的缩放因子,基于它所在的文件夹以及设备的密度。
您可以阅读有关缩放系数here的更多信息。
如果没有可用的匹配资源,系统会使用默认资源并根据需要向上或向下扩展以匹配当前屏幕大小和密度
“默认”资源是未使用配置限定符标记的资源。例如,drawable /中的资源是默认的可绘制资源。系统假定默认资源是针对基线屏幕尺寸和密度设计的,这是正常的屏幕尺寸和中等密度。因此,系统会根据需要为高密度屏幕缩放默认密度资源,为低密度屏幕缩小默认密度资源。
但是,当系统查找特定于密度的资源但未在密度特定的目录中找到它时,它将不会始终使用默认资源。系统可以改为使用其他密度特定资源中的一个,以便在缩放时提供更好的结果。例如,当寻找低密度资源并且它不可用时,系统倾向于缩小资源的高密度版本,因为系统可以轻松地将高密度资源缩放到低密度资源。与将中等密度资源缩放0.75倍相比,因子为0.5,伪影更少。