Nexus 7新版本在使用资源文件夹时出现分辨率问题

3

我的Android应用在旧Nexus 7上运行良好。但是我在新Nexus 7设备上遇到了一个问题。所有动态渲染(图片大小和文本大小)都破坏了设计,例如:

tv1.setTextSize(getResources().getDimension(R.dimen.legend_text));

这里我提到了4个文件夹,它们分别命名为:

values-large-hdpi
values-large-xhdpi
values-xlarge-hdpi
values-xlarge-mdpi

在所有上述文件夹中,dimen.legend_text的值均为11sp。但当我跟踪getResources().getDimension(R.dimen.legend_text)的值时,它给出了18

这是我的日志:

11-18 12:09:29.758: D/size of text foe nexus 7(4794): size of text foe nexus 7 is 18.0

有人知道适用于新Nexus 7(1920*1200分辨率)的资源文件夹吗?


你为什么那么确定,在你的n7上,18px不是11sp的正确值?顺便说一句:自Android 3.1以来,限定符large和xlarge已被弃用。 - flx
我对其进行了调试并在日志中打印了getResources().getDimension(R.dimen.legend_text)的值,它显示为11-18 12:09:29.758:D/size of text foe nexus 7(4794):text foe nexus 7的大小为18.0。 - Praveen Sharma
我明白了。但是为什么18是错误的?你知道sp!=px,对吧? - flx
是的,但对于旧版Nexus 7来说,它可以正常工作。我无法找到其资源的确切文件夹,也不知道它从哪里获取。 - Praveen Sharma
2个回答

2
实际上,您使用的是9sp意味着(px = sp*(dpi/160))。因此,根据这个公式px = 9*(320/160),即18。
这就是为什么您会得到值为18的原因。
9sp11sp替换为9px,您现在的问题将得到解决。
关于文件夹问题:使用large-xhdpisw600dp-xhdpi

1

tvdpi是Nexus 7的正确文件夹


还有一个名为“nodpi”的文件夹。它就像是一个中性的文件夹。在这里尝试。 - Rahul Gupta
没有指定默认文件夹和带有“nodpi”的文件夹之间有什么区别吗? - Praveen Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接