根据分辨率/密度从资源获得最佳质量的图像分配

ǝ

我正在Android“多屏尺寸”域中完成一项非常琐碎的任务。

我正在努力实现的目标

与屏幕宽度匹配的布局,具有九个补丁的背景,该背景会调整大小(仅水平放置,因为始终有足够的垂直空间)。这是虚拟图像:水平可拉伸的九个补丁图像,左右两端有两个区域

我的目标是根据屏幕分辨率,通过使用一组不同的尺寸,以尽可能高的分辨率显示图像。320x45、480x67、600x87、720x101,没有任何缩小比例。我希望有一个非编程的解决方案。

具有上述图像尺寸的示例为:

  • 3.7英寸的Nexus One(480 x 800)-480x67的图像看上去最好。
  • 4.7英寸Galaxy Nexus(720 x 1280)-720x101图像。
  • 4.7英寸Nexus 4(768 x 1280)-还是720x101的图片,可扩展到整个768 px的宽度,然后变成768x101。

问题

整个Android资源分配都围绕dps(与密度无关的像素)展开,而实际上我想根据实际可用像素显示图像。

如果我将480x67图像分配给res / drawable-mdpi,将600x87分配给res / drawable-hdpi,则图像将正确显示在480x8005.4英寸显示器上,即mdpi显示器。但是,4英寸480x800显示器则可以显示为hdpi和系统将指定600x87的图像,该图像不适合屏幕

我尝试了在线指南中所述smallestWidth参数,但是会产生奇怪的结果。例如,尽管我也有一个drawable-sw480dp资源,但是3.7“ 480 x 800显示器(hdpi)使用了我的drawable-sw320dp图像。

分配具有最佳质量的可拉伸,宽度匹配图像的最佳方法是什么?没有任何非编程解决方案吗?

提前致谢!

尼察尼

我相信通过结合使用密度和屏幕尺寸资源限定符,您可以实现接近最佳的性能。

让我们假设这种资源文件夹结构:

  • drawable-normal-hdpi-normal尺寸规定最小宽度为320dp。hdpi规定1.5X dp到像素乘法器。因此,normal hdpi存储分区的最小px宽度为480px。我们在此处放置了一个480px宽的图像。
  • drawable-normal-xhdpi-尺寸再次决定了320dp,但这一次是2倍乘数。因此,我们使用640像素宽的图片。
  • drawable-xlarge-mdpi-尺寸至少为720dp。mdpi乘数是1倍,因此我们使用720像素宽的图片。

现在,让我们看一下一些设备,看看它们如何落入这些存储桶中:

  • Nexus One- normal hdpi实际px宽度:480px。图像非常合适。
  • 星系连结- normal xhdpi我们可以容纳720像素的图像,因此我们使用的640像素图像不是最佳的-但距离非常近。
  • Nexus 4就像Gnex。
  • Nexus 10.1(1280X800)- xlarge mdpi我们可以容纳800像素,我们的图像是720像素。再次不理想,但足够接近。

最坏的情况:使用的图像质量可能提高5-10%。最佳案例:完美契合。

此方法的主要缺点是,您需要提供大量资源和文件夹来说明大小和密度的所有排列(如果需要将其与更多的区域设置,方向等限定符结合使用,则更糟)。但是,就我对Android的理解而言,如果不编写代码,您认为没有比这更好的东西了。


关于smallestWidth以下内容的评论:您的怪异行为示例实际上是预期行为。hdpi乘数为1.5-480像素宽的hdpi显示屏正好是320dp宽。如所记录的,这使drawable-sw320dp成为正确的选择。我不确定是否可以将smallestWidth限定符与dpi限定符结合使用。如果可能,您可能会得到比大小修改器更准确的结果。但这意味着图像质量提高5%会产生更多的排列。可能不值得。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CSS:查询屏幕分辨率和密度的最佳方法?

来自分类Dev

根据分辨率调整图像大小

来自分类Dev

ImageView加载的高分辨率图像质量很差

来自分类Dev

使用ImgScalr调整图像的最佳分辨率

来自分类Dev

在Android上缩放图像以获得各种分辨率

来自分类Dev

如何从golang中的url获得图像分辨率

来自分类Dev

根据屏幕分辨率更改图像路径

来自分类Dev

根据屏幕分辨率调整图像的大小

来自分类Dev

根据分辨率在Linux目录中查找图像

来自分类Dev

根据分辨率在Linux目录中查找图像

来自分类Dev

libgdx分辨率/密度缩放资产

来自分类Dev

寻找图像分辨率?

来自分类Dev

增强图像的分辨率

来自分类Dev

降低图像分辨率

来自分类Dev

Android布局-适用于不同屏幕分辨率和相同密度的图像

来自分类Dev

更改图像的分辨率以匹配特定的像素密度(DPI)

来自分类Dev

图像资产的正确图像分辨率?

来自分类Dev

找不到最佳的屏幕分辨率

来自分类Dev

找不到最佳的屏幕分辨率

来自分类Dev

最佳显示器分辨率

来自分类Dev

无法获得本机分辨率

来自分类Dev

VideoCamera获得支持的分辨率

来自分类Dev

无法获得本机分辨率

来自分类Dev

JavaScript获得WebCam分辨率

来自分类Dev

根据分辨率缩放HTML列表

来自分类Dev

根据分辨率更改Web CSS

来自分类Dev

最大PNG尺寸(根据分辨率)

来自分类Dev

根据屏幕分辨率显示菜单

来自分类Dev

iText DataMatrix条码分辨率和质量