Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在两台Android机器中,相同屏幕分辨率下不同的文本大小,但dpi不同_Android_Dpi_Screen Resolution_Text Size - Fatal编程技术网

在两台Android机器中,相同屏幕分辨率下不同的文本大小,但dpi不同

在两台Android机器中,相同屏幕分辨率下不同的文本大小,但dpi不同,android,dpi,screen-resolution,text-size,Android,Dpi,Screen Resolution,Text Size,我有两台安卓电脑-三星Galaxy Tab和HTC Flyer。它们都有1024x600屏幕。然而,根据Context.getResources().getDisplayMetrics()方法中的日志,Tab的屏幕显示为240dpi,而Flyer的屏幕显示为160dpi 我的问题是,我定义了一个TextView,根据那些Android文档,在不同的屏幕密度(dpi)下,使用dp的单位应该给出相同的物理大小。但我观察到的是,传单中显示的文本大小明显小于Tab中的文本大小,使用sp也没有运气。我希望

我有两台安卓电脑-三星Galaxy Tab和HTC Flyer。它们都有1024x600屏幕。然而,根据
Context.getResources().getDisplayMetrics()
方法中的日志,Tab的屏幕显示为240dpi,而Flyer的屏幕显示为160dpi

我的问题是,我定义了一个
TextView
,根据那些Android文档,在不同的
屏幕密度(dpi)
下,使用
dp
的单位应该给出相同的物理大小。但我观察到的是,传单中显示的文本大小明显小于Tab中的文本大小,使用
sp
也没有运气。我希望它们的尺寸相同。一般来说,解决这个问题有什么线索吗


提前感谢。

请尝试以下装置:

毫米-基于屏幕的物理尺寸

英寸-基于屏幕的物理大小


好吧,报告的数值显然是谎言。我想Galaxy标签是7英寸的型号。这意味着,根据报告的值,其显示高度约为4.2英寸(1024/240=4.2英寸),宽度约为2.5英寸。这意味着屏幕尺寸为4.2x2.5英寸,在这种情况下,对角线大约为4.9英寸。它是正确的-不,它不是,它有7英寸的显示器。测量屏幕的侧面,你会得到正确的密度。因此,即使使用Android进行缩放,结果也会因为错误的密度测量而出错

无论如何,问题的答案是:

不,没有办法画出同样大小的字体、图像等等。您需要习惯制造商提供的虚假指标。错误的密度读数会反映所有其他缩放。因此,即使mm/in也无济于事


还有一条建议——除非绝对必要,否则不要尝试在不同的产品之间匹配尺寸。如果你成功了,那么Galaxy选项卡上的文本将与设备上的其他文本不成比例,并使你的应用程序看起来不合适。坚持使用Android文本AppearanceSmall/Large等。

有趣的是,我尝试了
ImageView.getMeasuredWidth()
来处理我的图像,在这些图像中,它们被放在所有可绘制文件夹(即可绘制hdpi、可绘制mdpi等)中,该方法返回相同的值,并且能够在两台机器中以相同的大小绘制它们。但是在执行
TextView.getMeasuredWidth()
时没有运气,因此我想知道是否可以获得与
ImageView
中相同的结果。缩放后,getMeasuredWidth将返回值。由于缩放本身是错误的,我想测得的宽度也会是错误的。谢谢,但是文本的大小在其他屏幕大小不同的机器上看起来可能是相同的,这是不可取的。