流类库与输入输出:认识canvas汉字输入类库



大 2我们班组了个创新团队(Team)手机游戏对战平台在东软杯上还拿了奖挺开心

在做游戏过程中我发现每当要输入界面就会跳转到系统给输入框里来(在模拟器上能直接输)后来用canvas做游戏时发现不能插入输入框于是我就想写个输入法能在canvas上直接输入这样只要在canvas上按堆数字键就能输出

我把这个汉字输入法连同个\" Java手机日记本\"上交学院参加院庆杯很失望连个鼓励都没有

现在分享给大家希望大家能有用对输入法有建议请跟贴告诉我谢谢!!!

主要API介绍
1、util.hzpy.HanziInput
汉字拼音输入法类通过这个类能够识别键盘输入获取用户需要汉字
void back
退格
char getCurrent_hanzi
获得当前选中汉字
java.lang.StringBuffer getCurrent_pinyin
返回当前拼音序列
char getHanziSequence
获得当前汉字序列
getInput_state
获得当前输入法状态用来判断是否可以输出
tatic HanziInput getInstance
获得拼音输入法例子
java.lang.StringBuffer getPinyinSequence
获得当前拼音序列
void init
化输入法
void nextKeycode( keycode)
加入个新按键消息
void updateView(javax.microedition.lcdui.Graphics graphics, width, height, javax.microedition.lcdui.Font font)
更新输入法画面在屏幕底部显示输入法内容
2、util.hzpy.HanyuPinyin
汉字字库每组汉字由对应汉语拼音索引
char getHanziSequence(java.lang.StringBuffer pinyin)
根据拼音获取汉字序列
4、输入法应用举例
/*
* EditCanvas.java
* 汉字编辑
*
* Created _disibledevent=> height = getHeight;
//获得输入法
input = HanziInput.getInstance;
text = StringBuffer;
//绘制
font= Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_LARGE);
}
protected void pa(Graphics graphics) {
/*设置输入法绘画区域*/
graphics.Clip(0,0,
width,height);
graphics.Color(0xffffff);
//清屏
graphics.fillRect(0,
0,
width,height);
graphics.Color(0);
(text != null && text.length > 0){
width_per_char = font.charWidth(\'爱\');//设置汉字
len_per_line = width/width_per_char;
off = 0;
length = len_per_line;
height_of_text_write = 0;
char hanzis = char[text.length];
text.getChars(0,text.length,hanzis,0);
(length > hanzis.length) length = hanzis.length;


while(off <= text.length ){
//挨个输出text里汉字
graphics.drawChars(hanzis,[Page]
off,length,
0,height_of_text_write,
Graphics.TOP|Graphics.LEFT);
off len_per_line;
height_of_text_write font.getHeight;
(off+len_per_line > text.length)length = text.length - off;
length = len_per_line;
}
}
//绘制输入法界面
(input.getInput_state > 2){
//有输入法有更新
input.updateView(graphics,width,height,font);
}
}
public void keyPressed( keycode){
.out.prln(\"keycode=\" + keycode);
(keycode -5 || keycode 48){ //确定
(input.getInput_state > 1){
//获得输入法中选中汉字
text.append(input.getCurrent_hanzi);
//重置输入法
input.init;
}
}{
input.nextKeycode(keycode);[Page]
}
repa;
}
//退格
public void back {
(input.getInput_state > 1){
input.back;
repa;
}{
(text.length > 0)
text.Length(text.length-1);
repa;
}
}
}


汉字输入类库

下载信息
图片点击可在新窗口打开查看\" _disibledevent=>[点击浏览该文件:] | 图片点击可在新窗口打开查看\" _disibledevent=>[快车下载]



演示





下载信息
图片点击可在新窗口打开查看\" _disibledevent=>[点击浏览该文件:] | 图片点击可在新窗口打开查看\" _disibledevent=>[快车下载]



类库源代码


下载信息
图片点击可在新窗口打开查看\" _disibledevent=>[点击浏览该文件:] | 图片点击可在新窗口打开查看\" _disibledevent=>[快车下载]



Tags:  lostcanvas opencanvas canvas 流类库与输入输出

延伸阅读

最新评论

发表评论