Android如何使用等宽字体


我希望在Android系统的TextView或者WebView中显示等宽字体,具体需求如下:
希望中文的宽度恰好是半角英文的两倍。例如3个国字和6个1恰好能对齐:
国国国
111111
我试着用Font Lab把网上的“YaHei.Consolas.1.12.ttf”转成otf,并在WebView里用css指定字体,可以看到字体换过来了,但是两行的宽度还是不一样。
请问要怎么做才可以精确地对齐?

GUI开发 Android

御剑平四郎 11 years, 5 months ago
  1. Android里面的WebView组件是支持CSS3的自定义字体的,但是对于中文字体,往往字体文件非常大,可能会导致WebView加载含有自定义中文字体的页面时,文字的出现会有明显的延迟
  2. YaHei Consolas是雅黑和Consolas字体的拼合,对于中文字符将使用雅黑渲染,对于英文、数字等非中文字符,将采用Consolas字体渲染。Consolas字体是等宽字体,在这个字体里面的每个字符都是同样宽度的,但是不代表它是中文宽度的1/2,所以你所说的,一个中文字正好和2个字符、字母数字的宽度相等,用这个字体包是无法实现的
  3. 目前还不知道哪个英文字体是等宽的并且是中文字符的一半宽度(同等字号的前提下),所以楼主可能要多尝试尝试,实在不成就使用CSS微调字间距
  4. 如果是比较有规律的这种对齐,比如说表格中的内容啊,固定格式的布局啊,这些你可以使用CSS微调好然后再放上去。如果是大段大段的文字,可能会比较难

以上只是我对于这个问题的思考和感觉比较难得地方,也可能有简单的解决办法,期待高手能够一语道破天机

间隙妖怪八云紫 answered 11 years, 5 months ago

Your Answer