真实设备上的按钮上的文本比模拟器上的文本更大?

时间:2016-06-27 01:39:31

标签: android android-studio

我正在开发一个简单的Pitch Pipe应用程序来学习基本的Android。我已经完成了 - 它具有我想要的音高管道的所有功能。但是,在我试过的两个真实设备上,文本不适合模拟器上的按钮。而不是:

pitch pipe app image

中心按钮上的文字在真实设备上显示如下:

F#/

G b 4

抱歉,我无法提供我尝试过的手机的任何截图,他们属于朋友。但它基本上看起来像文本处于对齐模式以及太大,因此它占用2行而不是1行。我怎样才能防止这种情况发生?如何以不同方式处理处理文本的不同设备?我应该使用sans-serif-light以外的字体吗?感谢您提供的任何见解。

3 个答案:

答案 0 :(得分:0)

这取决于设置文本大小时使用的测量单位。

例如,如果使用“sp”,则文本大小将相对于设备字体大小。

答案 1 :(得分:0)

您应为textSize创建不同的尺寸,以支持不同的屏幕分辨率。或者以编程方式,在lineCount变为两个或更多时设置文本的大小。如果您使用的是getLineCount(),则可以使用textView获取lineCount,并将textSize设置为text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);

答案 2 :(得分:0)

某些设备可能使用的系统字体与模拟器的字体略有不同。默认字体取决于Android的版本(例如Lollipop使用Roboto),但通常会被制造商修改。

请注意,在您的情况下,还有另一个混淆的原因:如果您测量中央按钮的字体大小以紧密匹配F,则切换到A可能会导致分为两行,因为A略宽于F.因此,可能需要动态调整字体大小。