像素密度如何与屏幕尺寸相对应?

时间:2018-09-28 13:18:28

标签: android image background fullscreen hdpi

很抱歉创建潜在的重复副本,但是我没有找到任何可以回答我的问题的东西。 本质上可以归结为:

我应在哪些全屏图像文件夹中包括哪些图像大小以支持所有Android设备?

答案通常会在每个密度桶中声明不同的像素分辨率。

例如:

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px
     

来源:Android: Background Image Size (in Pixel) which Support All Devices

这样的列表实际上正是我想要的。唯一的问题是,这对我来说没有意义。

对于应该在不同密度下显示相同大小的图像,按密度分组图像似乎是正确的(例如,始终具有1 x 1 cm大小的图标,而与屏幕密度无关)。


但是,对于全屏图像,我不想基于显示器的像素密度而是基于其实际像素大小来选择图像! (还是我?)

  

假设我有3个设备(虚构值):

     
      
  • 具有500 x 500像素显示屏(〜hdpi)的2英寸手表
  •   
  • 4英寸手机,显示屏为1000 x 1000px(〜hdpi)
  •   
  • 10英寸平板电脑,可显示1000 x 1000px(〜mdpi)
  •   
     

还有一个我要在所有屏幕上全屏显示的1000 x 1000px图像   设备。

很明显2“和4”设备具有更高的像素密度,因此它们是从hdpi存储桶中获取图像的,而10“设备是从mdpi存储桶中获取的图像。这意味着2“和4”设备使用相同的图像尺寸,而10“设备使用较小的图像尺寸。

但是我的直觉告诉我,对于2“设备,我应该使用按比例缩小的图像(像素不足以显示1000 x 1000px图像),而对于4”和10“设备,则应使用完整分辨率(因为它们都具有足够的像素,可以从1000 x 1000px的完整分辨率中受益。 在我看来,密度桶不适合实现这一目标。


我假设那里的答案并没有全部错,这只是我的思维过程存在缺陷。我只是不知道在什么时候。任何帮助表示赞赏!

Ps。我不太担心精确的分辨率值或宽高比。一些裁剪/拉伸完全可以。我只是想知道当要全屏显示时如何使Android选择最合适的分辨率的图像。在我看来,密度桶并不是正确的方法。

1 个答案:

答案 0 :(得分:1)

  

我应在哪些文件夹中包含什么图像尺寸以显示全屏图像以支持所有Android设备?

基本上,您的问题没有答案。

通常,像素密度和屏幕尺寸可以相关,但是两者之间没有没有形式上的关系。没有什么可以阻止一些硬件制造商制造出像素密度极高的微型设备或像素密度低的巨大设备。

此外,还有许多具有相同像素密度但屏幕尺寸截然不同的不同设备的示例。

最后,存在长宽比的问题:您可以使两个设备具有相同的像素密度和相同数量的水平像素...但它们很容易具有两个不同数量的垂直像素。

任何尝试在每台Android设备上创建“全屏” png的尝试都注定会(至少在某些方面)在某些设备上失败。您可以创建可缩放到任何屏幕尺寸的矢量可绘制对象,但仍然需要忍受存在不同纵横比的屏幕的事实。