当前位置: 首页 > 知识库问答 >
问题:

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

武元白
2023-03-14

很抱歉创建了一个潜在的副本,但我没有找到任何答案来回答我的问题。它本质上归结为:

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

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

例如:

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

来源:Android:支持所有设备的背景图像大小(像素)

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

按密度对图像进行分组似乎适合于在不同密度上显示相同大小的图像(例如,图标大小始终为1 x 1 cm,与屏幕密度无关)。

然而,当谈到全屏图像时,我不想根据显示器的像素密度来选择图像,而是根据它的实际像素大小!(还是我?)

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

    < li >带500 x 500px像素显示屏的2英寸手表(~hdpi) < li>4英寸手机,1000 x 1000px像素显示屏(~hdpi) < li>10英寸平板电脑,1000 x 1000px像素显示屏(~mdpi)

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

显然是2”

但是我的直觉告诉我,我应该对2英寸的设备使用缩小的图像(没有足够的像素来显示1000 x 1000px像素的图像),对4英寸的设备使用全分辨率

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

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

共有1个答案

云丰
2023-03-14

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

你的问题基本上没有答案。

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

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

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

任何试图创建一个可以在每一个Android设备上运行的“全屏”png的尝试都注定会在至少一些设备上失败(至少在某些方面)。您可以创建可缩放到任何屏幕大小的矢量绘图,但是您仍然需要接受屏幕具有不同纵横比的事实。

 类似资料:
  • 问题内容: 嗨,我正在编写图形程序,我一直在寻找一种获取所使用屏幕物理尺寸的方法。我可以获得以像素为单位的屏幕大小以及逻辑分辨率。我似乎找不到任何地方可以获取任何显示器规格中始终具有的物理尺寸(例如19“-376 x 301 mm)。问题是,加载此信息时,此信息是否甚至还存储在OS中的任何位置?我正在编写的程序需要在Mac和Windows上运行。 谢谢! nt 问题答案: 我认为Java不可能实现

  • 我仍然有问题的图像在我的应用程序的正确视图。所以在我的第一台设备上(5.2英寸 在第二台设备上(5.5英寸 这是我的布局中的ImageView: 我在Android博客上读到这篇文章后,将所有图像放在了drawable文件夹中: 通常有两种方法来针对所有屏幕DPI。1.最简单的方法-使所有图像特高或特高DPI。 如果设备与可绘制DPI不匹配,Android会自动缩放可绘制DPI。如果只创建高密度的

  • 问题内容: 我已经仔细阅读了http://developer.android.com/guide/practices/screens_support.html和其他相关网站中的文档,但我仍然对此表示怀疑。让我解释: 我已经为值,values-large和values- xlarge实现了dimens.xml,因此,例如,在平板电脑上运行时,我的Android应用程序很好。但是,我指定了填充,边距,

  • 我试图理解一款支持不同屏幕大小的游戏(android)中的速度概念。 假设我有一个精灵,从横向模式的右端到左端需要10秒。帧速率并不稳定,所以有时会持续30秒,然后突然变为10秒。但我还是希望我的雪碧从一端到另一端需要10秒钟。我该怎么做? 这就是我所理解的: 通过将屏幕宽度除以从一端到另一端获取精灵的时间,可以获得基本速度。如果有稳定的帧速率,则基本速度是精灵每秒应添加到当前位置的速度。然而,我

  • 问题内容: 我想知道是否可以使用tkinter计算屏幕尺寸。 我想要这样做,这样可以使程序在屏幕中央打开。 问题答案:

  • 问题内容: 无论屏幕大小如何,我都想使用Swift代码在我的应用程序中正确定位项目。例如,如果我希望按钮的宽度为屏幕宽度的75%,则可以做为按钮的宽度。我发现可以通过在Objective-C中确定 不幸的是,我不确定如何将其转换为Swift。有人有主意吗? 谢谢! 问题答案: 在Swift 3.0中 快点做:做这样的事情: 那么您可以像这样访问宽度和高度: 如果您想要屏幕宽度的75%,则可以执行以