我有一个有趣的事情(错误?),我在Android中使用TextView时遇到过。
我有一个带有以下属性的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将文本叠加到彼此上。 文字和字体相同(即我可以将字母像素排列为像素)但字距(字母之间的空格)不同!
仅针对该文本视图,我切换到使用代码而不是XML进行设置并再次进行比较....它们是相同的。
这是两个输出的比较。顶部是用XML完成的。底部是用代码完成的。
编辑:请注意,图片中缺少的“INT”仅仅是因为我捕获了示例时剪辑了图片。文本字符串是相同的,并且“INT”存在....就在图片之外。
所以那里肯定存在差异。但请注意实际字符是相同的。
我是否遗漏了XML中的内容?我已经搜索了围绕字距调整的选项,但除了安装自定义字体(我不想做)之外,我没有看到在android中调整字距调整的方法。有办法吗?这是android中的错误吗?
我可以解决这个问题,但我试图消除代码,因为它确实不合适。