3

我在使用 Android 中的 TextView 时遇到了一件有趣的事情(错误?)。

我有一个具有以下属性的文本视图(为简洁起见已剪辑):

<TextView
    android::id="@+id/myId"
    android:text="Some Temporary Text 1234"
    android:textSize="7sp"
    android:typeface="monospace"
    ...
/>

这将按预期显示,但字距调整与设置这些属性的 textview 不同,如下所示:

TextView textView = (TextView) xxx.findViewByID(R.id.myId);
textView.setTextSize(7);
textView.setTypeface(Typeface.MONOSPACE);

我正在用头撞墙,试图弄清楚为什么从用代码构建视图到 XML 时输出不同。很难知道发生了什么,因为我只连接了一个设备。

因此,我使用每种方法拍摄了设备快照,并使用 Photoshop 将文本相互叠加。 文本和字体是相同的(即我可以逐个像素排列字母)但字距调整(字母之间的空间)不同!

仅对于那个 textview,我切换到在代码中而不是 XML 中设置它并再次比较......它们是相同的。

这是两个输出的比较。顶部是用 XML 完成的。底部是在代码中完成的。 在此处输入图像描述

编辑:请注意,图片中缺少的“INT”只是由于我在捕获示例时剪切了图片。文本字符串是相同的,并且存在“INT”....就在图片之外。

所以肯定是有区别的。但请注意实际字符是相同的。

我在 XML 中遗漏了什么吗?我已经搜索了围绕字距调整的选项,但除了安装自定义字体(我不想这样做)之外,我看不到在 android 中调整字距调整的方法。有办法吗?这是android中的错误吗?

我可以解决这个问题,但我试图消除代码,因为它真的不合适。

4

0 回答 0