当在Canvas上使用文本时,你可以通过一些东西使程序能够在更过的移动电话上运行。例如,文本的高度和宽度可能因开发商的不同而不同,Sony EriCSSon java Platform7(JP-7)上的字体宽度比以前Java平台稍宽。
那么,有些情况下一些文本可能被绘制到Canvas或者目标区域之外。例如,如果你对文本进行硬编码,或者你要显示一个有几行文本的信息屏幕,并且硬编码换行。
静态换行的应用程序可能会有些信息显示在目标区域之外
在Font类中一些方法可以用来得到一个字符串的宽度,如下:
int charsWidth(char[] ch, int offset, int length)
int charWidth(char ch)
int stringWidth(String str)
int substringWidth(String str, int offset, int len)
那么,通过使用这些方法任意一个可以在代码中计算出换行,它使你的应用程序在不同电话中的移植变得更加容易。
原文地址:http://developer.sonyericsson.com/site/global/techsupport/tipstrickscode/java/p_avoid_text_drawn_outside_canvas.jsp
(出处:http://www.knowsky.com)