TextView大小在实际设备和模拟器中有所不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TextView大小在实际设备和模拟器中有所不同相关的知识,希望对你有一定的参考价值。

之前提出的问题和解决方案都不适用于我。

对于方法setTextSize(),当我给出硬编码值如下:

textView.setTextSize(16)

模拟器和设备上的文本大小相同。

但是,当我在尺寸文件中给出尺寸时:

<resources>
    <dimen name="default_text_size">5sp</dimen>
</resources>

我已经通过编程方式尝试了两种方法来设置此大小:

defaultTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, getContext().getResources().getDimension(R.dimen.default_text_size));

defaultTextView.setTextSize(getContext().getResources().getDimension(R.dimen.default_text_size));

它们都在真实设备和模拟器上显示不同的大小。

请参阅随附的屏幕截图。

知道如何解决这个问题吗?我知道它会根据屏幕分辨率而改变,但这是一个巨大的变化。在模拟器的情况下,整个文本在ListView行的上半部分缩小。这不是我想要的。

Emulator

Real Device

答案

与比例无关的像素(sp) - 这与dp单位类似,但它也可以根据用户的字体大小首选项进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好调整它们。

当您将文本的大小单位(在TextView中)设置为sp时,它也会依赖于用户/设备字体大小首选项。因此,在不同的设备上,您的文字可能会显得不同。

如果您希望文本在任何地方出现(无论用户的字体大小首选项如何),请使用dp代替:

<resources>
    <dimen name="default_text_size">5dp</dimen>
</resources>

以上是关于TextView大小在实际设备和模拟器中有所不同的主要内容,如果未能解决你的问题,请参考以下文章

不同分辨率和屏幕尺寸的TextView字体大小

捆绑行为在 ios 模拟器和实际设备中有所不同

如何在不同的屏幕尺寸和密度下保持 TextView 中的文本大小一致?

iOS 设备和模拟器的构建实际上有何不同?

在模拟器和设备中安装应用程序时,图像相同但大小不同,AFNetWorking

文本字段的动画不隐藏在键盘下方,在 IOS 7 中的模拟器和实际设备中的行为不同