我在使用 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中的错误吗?
我可以解决这个问题,但我试图消除代码,因为它真的不合适。