《汉字知多少》开发志(五)

原创 2004年10月06日 13:32:00

今天任务:加入about选项介绍软件功能及相关信息;增加暂停、翻页功能


 进行之前先修正一个bug吧。就是显示第一个屏幕的时候在屏幕的下侧汉字出现叠加现象并且不是一行一个!其实昨晚就发现了,但太晚了,me要休息,所以就放下了。问题应该出在首次生成坐标和字符数列的时候,浏览源码,嘿嘿,果然如此。用全局变量height来限定对数列的规则填充,改为stars.length,ok。该死的东东,可见根据数列进行判断的重要性!


 增加暂停功能是为了让用户有机会去请教别人或者查字典,呵呵。翻页功能则是屏幕自动下移的速度太慢,用户可能早早看完了想向下看时等的着急。闲言少叙,转入正题。其实很简单,设定按键的动作就行了,需要对keyPressed、pointerPressed进行操作。暂停的时候不再生成新的坐标和字符数列就行了;按键方面考虑到部分机器不支持触摸设备,对按键也进行了定义:触摸动作和确定键是个开关,按一下暂停,再按继续;向下的键则生成新的一屏显示内容制造下翻的效果;向上的键、左右的键都不定义任何动作;其它任何键都和确定键一样是个开关。
 看这代码一天长过一天,还是不再使用内部类了吧。update到cvsrepository后,把Canvas内部类拆离成单独的类。


 不过说实话,内部类如果不是太大难以维护的话,还是有不少便利,比如变量的共用等。


 ???初步设想设置一个全局变量pause(boolean)用于控制是否暂停,在pointerPress中反转pause的值。在scroll方法(更新数列)检查pause,如果为真则不更新数列,如果为假则更新。结果测试不行,第一次点击的时候有作用,屏幕停了下来,再次点击屏幕却再也不重新移动!


 一时没有想明白,就采用了简单的方法,把暂停和继续的功能设定在不同的键上。考虑用户操作习惯,对以上构思做了调整:上键、左键、点击屏幕,暂停移动;下键、右键,翻屏(也就是显示完全不同的下一页内容);确定键、键盘其它任意键,继续屏幕移动。为了支持翻屏,把原来放在构建器中初始化坐标数列和字符数列的内容单独设置为一个方法,方便翻屏调用。调试,通过。


 !!!初始化屏幕画底色时一般容易写成 g.setGrayScale(255);g.fillRect( 0, 0, width, height);其实第二句写为g.fillRect( 0, 0, width - 1, height - 1);才是正解。少画那条不必要也不能显示的线me也不知道能提高多少系统性能,但节约了资源是肯定的,毕竟手机、pda都是cldc嘛,节约一点是一点。


 在屏幕上打水印时因为内容有三行,me的语句是这样的:


         //在屏幕中央打上水印,呵呵
  g.setGrayScale(191);
  g.drawString("garden.eoooo.com", width/2, height/2-(fonth*3)/2, g.BASELINE|g.HCENTER);
  g.drawString("后花园", width/2, height/2-fonth/2, g.BASELINE|g.HCENTER);
  g.drawString("heart5", width/2, height/2+fonth/2, g.BASELINE|g.HCENTER);


 使用setGrayScale是因为它比setColor要少写两个参数,再说也不是所有的手机都支持彩色,比如motorola A388,写成setColor纯属浪费,再说me这个《汉字知多少》基本是针对388之类的黑白灰度屏幕开发的,呵呵。而191是离纯白255最近的灰度级别,只是淡淡的有一点痕迹,毕竟是水印嘛。


 !!!看到BASELINE又想到了前面调试的错误,忿,再强调一次:string只支持BASELINE,image只支持HCENTER,千万不要错咯。


 ???再来说drawString的定位,其中fonth是字体高度,意思很明显,屏幕中间一行,紧接着上面一行,下面一行。在motorola j2me Launchpad上测试正常,水印位于中央,但是在NetBean中用从wrk导入的DefaultColorPhone测试却位于屏幕上侧,明显偏上,不知道什么原因?

《汉字知多少》开发志(六)

哈哈,两周没有写笔记了,今天抽空补上。 《汉字知多少》告一段落,基本功能都已经实现。想像中的在屏幕右侧开一个信息窗口显示汉字的放大模型,已经出现的汉字个数统计以及其他信息,因为汉字的模具搞不出来,暂缓...
  • heart5
  • heart5
  • 2004年10月20日 07:51
  • 748

《汉字知多少》开发志(二)

通过Font类的宽度函数和高度函数解决了字符重叠的问题,下一步就是稳定显示的问题咯。把半年前写的一个例子拿来看,其中也是关于固定背景上面更新的内容,一运行不要紧,在moto i85s中能运行,但是总是...
  • heart5
  • heart5
  • 2004年10月04日 13:26
  • 1509

《汉字知多少》开发志(一)

言归正传,回到正在试验的一个小例子程序。原程序是通过调用TimerTask和Timer来显示一个动态滚动的星空,me结合那个原理准备做一个随机显示汉字的程序,用来测试到底有多少汉字不认识,汗(不认识的...
  • heart5
  • heart5
  • 2004年10月04日 13:21
  • 6354

《汉字知多少》开发志(三)

学习unicode肯定得到官方网站http://www.unicode.org/啦。内容真多,不过me的主要任务是找到汉字所在的区间。汗颜,me先通过word的插入字符功能进行查询。初步查阅到第一个汉...
  • heart5
  • heart5
  • 2004年10月04日 22:56
  • 1105

《汉字知多少》开发志(四)

决定单独发布这个汉字测试软件,名字正式命名为“汉字知多少”。为了便于发布,为这个类单独设置了一个jar,从原来多个其它MIDLet中分离出来。使用NetBean的filesystem中copy和pas...
  • heart5
  • heart5
  • 2004年10月04日 23:02
  • 1033

开发基于全志V3的LinuxOS

先做下记录,过程后面再补上。 成果: 1.利用u-boot、buildroot、linux-3.4、tools成功构建linuxOS的V3固件。 2.在V3开发板——索智SC3806V上成功烧录并运行...
  • u010257920
  • u010257920
  • 2016年10月17日 16:06
  • 945

基于全志A33 spi从机系统实现

目前,linux系统是不支持spi从机功能,有个项目,A33 与单片机采用spi高速通讯,考虑到速度,只能设置A33 spi为从机模式。 一:硬件修改 主spi的一个io,连接到从机的一个中断io...
  • xiaoliu5116
  • xiaoliu5116
  • 2018年01月07日 23:54
  • 40

汉字笔划,五笔字根、拆分、练习汇总

五笔在我高中毕业的时候就学习啦,随着时间的流逝能用五笔打出来的字越来越少,近期想强化自己五笔的水平,就有了这篇汇总。 首先推荐系统学习教程:五笔打字教程(86版简明教程) 若想知道某个字是如何拆分...
  • panshiqu
  • panshiqu
  • 2016年10月10日 17:22
  • 961

接触全志-开发流程

参考: http://bbs.ixinhangdao.com/forum.php?mod=viewthread&tid=58&extra=page%3D1
  • yangguangmeng
  • yangguangmeng
  • 2014年03月14日 14:08
  • 1282

V3S应用编译流程

cd  camdroid . /build/envsetup lunch 1 cd .... mm
  • qinrenzhi
  • qinrenzhi
  • 2017年10月28日 14:31
  • 390
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《汉字知多少》开发志(五)
举报原因:
原因补充:

(最多只允许输入30个字)