安卓textview上中英显示宽度测试。

只是篇测试记录,并非深度研究分析。

1. 做一个需要需要以补空格方式居中文字,分拆textiew也可以,但是基于原有项目上修改非常,

项目需求总体来说是 开始(居中文字)结束,居中文字需要8个中文长度,不够时补空格。

2. 所以有了一个测试(仅测试结果)。当textsize为45 时,中文的宽度为45。但是英文和数字并非想的那样,不同的英文不一样,大概25-28都有,一个中文大概4.5个空格。所以估计是textview做了不同字符的宽度优化看,而不是一个中文两个英文。

3.最后用的是ScaleXSpan把2000个全角空格宽度缩小textsize倍,变成2000个像素点,然后再补。涉及到SpannableString。即常见的settext(CharSequence text)CharSequence 的子类,此子类非常的多。有空可以学习一下。

4.注实测安卓4.2当textsize是45,实际中文与安卓5.0不一致,显示一个中文54。

5.测试方法:TextView.getpaint.measureText(),但是此方法不适合测试SpannableString。所以可以使用getwidth。

getwidth需要等窗口渲染结束,即不能在oncreate中紧接着使用。


你可能感兴趣的:(android)