android - 像素密度如何对应于屏幕尺寸?

标签 android image background fullscreen hdpi

很抱歉创建了一个潜在的副本,但我还没有找到任何可以回答我的问题的东西。 它基本上归结为:

为了支持所有 Android 设备,我应该在哪些文件夹中包含哪些尺寸的图片以供全屏图片使用?

答案通常会说明要放入每个密度桶中的不同像素分辨率。

例如:

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

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

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

按密度对图像进行分组似乎适用于应该在不同密度下以相同尺寸显示的图像(例如,图标的尺寸始终为 1 x 1 厘米,与屏幕密度无关)。


然而,当涉及到全屏图像时,我不想根据显示器的像素密度选择图像,而是根据其实际像素大小! (或者我呢?)

Lets say I have 3 devices (fictional values):

  • 2" watch with 500 x 500px display (~hdpi)
  • 4" phone with 1000 x 1000px display (~hdpi)
  • 10" tablet with 1000 x 1000px display (~mdpi)

And a 1000 x 1000px image which I want to display full screen on all devices.

显然 2"和 4"设备具有更高的像素密度,因此它们从 hdpi 桶获取图像,而 10"设备从 mdpi 获取图像-bucket。这意味着 2"和 4"设备使用相同的图像大小,而 10"设备使用较小的图像。

但我的直觉告诉我,我应该为 2"设备使用按比例缩小的图像(没有足够的像素来显示 1000 x 1000 像素的图像),并为 4"和 10"设备使用全分辨率(因为它们都有足够的像素来受益于 1000 x 1000 像素的全分辨率)。 在我看来,密度桶不适合实现这一目标。


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

附言。我不太担心精确的分辨率值或纵横比。一些裁剪/拉伸(stretch)完全没问题。我只是想知道当你想全屏显示时如何让 Android 选择最合适分辨率的图像。在我看来,密度桶似乎不是正确的方法。

最佳答案

What image sizes should I include in which folders for full screen images to support all Android devices?

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

一般来说,像素密度和屏幕尺寸可能相关,但两者之间没有正式关系。没有什么可以阻止一些硬件制造商制造具有令人难以置信的高像素密度的微型设备或具有低像素密度的大型设备。

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

最后,还有纵横比的问题:您可以拥有两个具有相同像素密度和相同水平像素数量的设备……但它们很容易拥有两个不同数量的垂直像素。

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

关于android - 像素密度如何对应于屏幕尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52556291/

相关文章:

html - 如何堆叠两个 div 容器都响应地占用屏幕大小

java - 无法始终在单击和悬停时加载图片

css - 如何创建背景网格

带圆角的 Android AlertDialog : rectangle seen below corners

java - 实现 OnClick 和 setOnClick 方法的 Android 类

javascript - 如何将图像叠加在 Canvas 上,然后在其上绘图?

swift - 如何在单击时突出显示 UIButton 的背景和 "unhighlight"呢?

OpenGL : How to set up OpenGL to just render to a FBO, 没有输出到屏幕/窗口/控件?

java - android studio json数据解析错误

android - 在android中创建一个依赖库