言归正传,回到正在试验的一个小例子程序。原程序是通过调用TimerTask和Timer来显示一个动态滚动的星空,me结合那个原理准备做一个随机显示汉字的程序,用来测试到底有多少汉字不认识,汗(不认识的太多啦)!因为例程用“.”来模拟星星,这样就不存在叠加重合问题,但每个汉字占的空间显然大于那个“.”所占的空间,如法炮制就出现了汉字叠在一起没法分辨的情况。这可不行。
想到前两天浏览midp、cldc的api时好像看到Font类中有得到字符和字符串占用空间(以像素为单位)的功能,一看,果不其然,呵呵。在模拟器中测试了一下,在motorola A388中每个汉字的宽和高都是24,而英文字符的宽为12,高也是24;在motoi85s中汉字的宽为11,高为12,英文字符的宽为8,高为12。顺带说明一下,字符的高度对某个特定的机器来说应该是一样的,因为Font只提供了一个getHeight的函数,得到的值肯定只能有一个!测试face、size和style的值都为0,即STYLE_PLAIN、FACE_SYSTEM。另外一个问题就是设置为100毫秒刷新一次的时候,在motorola A388上测试时屏幕显示很不稳定。通过测试发现,模拟器显示的结果是它不支持DoubleBuffered。
因此,现在需要解决两个问题:第一,字符不能重叠;第二,显示要稳定。