1

我有一个新设备可以将我的应用程序移植到(Kindle Fire HDX)

DisplayMetrics转储:

DPI : 320, 
wxh 1920x1200, 
x,y dpi 324.255x322.966, 
scaleddensity 2.0 
densityfactor 2.0

放置布局资源的最准确的文件夹“swXXXdp”是什么?我可以从 displayMetrics 中计算出“XXX”吗?

  • 要定位我的 10.1 银河选项卡,我使用“ sw720dp”。
  • 要定位旧的 7" 1024x600,我使用 " sw600dp"
  • 这个 kindle fire 似乎也从 " sw600dp" 获取资源,但我不完全理解为什么(因为它的分辨率屏幕比其他 7" 大得多)

任何人都可以解释一下吗?谢谢!

4

1 回答 1

3

感谢大家的回答和一点研究,我终于明白了swXXXX的事情。

sw* XXXX * 和 sh* XXXX * 确实意味着可用的最小宽度和最小高度,但是显示指标中的密度因子也会影响这个值。

例如

  • Amazon Kindle Fire HDX 7" 的“原始”分辨率为 1920x1200,但显示是 Ultra-dense (xhdpi),这就是为什么将密度因子设置为 2。所以对于资源,Android 会查看 sw(1200/2 ) == sw600dp

  • 我的旧平板电脑也是 7 英寸,原始分辨率为 1024x600,但显示密度较低,因此 DisplayMetrics 返回的密度因子为 1,相关资源文件夹将为 sw(600/1)dp == sw600dp

  • 新的“类似视网膜”的 10" 屏幕的分辨率约为 2560x1600,但又一次,密度因子为 2,因此在 swXXXX 布局方面,它们等效于密度因子 = 1 的 1280x720 屏幕(即。 Galaxy Tab):在这两种情况下,文件夹都是sw720dp

  • 所以虽然布局文件夹是一样的,但是Bitmap资源会根据密度码去取,是不一样的。我描述的现代平板电脑使用 xhdpi,而较旧的平板电脑使用 mdpi 或 hdpi——现在不记得了——。这就是最后一件事起作用的原因:相同的布局使用与密度无关的尺寸,并加载与密度相关的位图。最后的煎蛋卷味道鲜美!

于 2014-03-23T16:49:27.760 回答