【发布时间】:2014-05-08 05:10:17
【问题描述】:
我正在为 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 像素宽度并变为 768x101。
问题
整个 Android 资源分配围绕dps(与密度无关的像素)展开,而实际上我想根据实际可用像素显示图像。
如果我将 480x67 图像分配给 res/drawable-mdpi 并将 600x87 图像分配给 res/drawable-hdpi,那么图像将在 5.4" display of 480x800 上正确显示,即 mdpi 显示。但是,4" 480x800 显示器符合 hdpi 标准,系统将指定 600x87 image, which won't fit the screen。
我按照in the online guide 的描述尝试了smallestWidth 参数,但这会产生奇怪的结果。例如,一个 3.7" 480 x 800 显示器 (hdpi) 使用我的 drawable-sw320dp 图像,尽管也有一个 drawable-sw480dp 资源可用。
分配具有最佳质量的可拉伸、宽度匹配的图像的最佳方法是什么?没有非程序化的解决方案吗?
提前致谢!
【问题讨论】:
-
我认为第一个错误是尝试做你想做的事情,而不是像谷歌建议的那样。 DONT USE PIXEL,你可以用 dp、sp 做任何事情,而且是正确的方法。
标签: android nine-patch xml-drawable