免费获取|
论文天下网
  • 论文天下网 |
  • 原创毕业论文 |
  • 论文范文 |
  • 论文下载 |
  • 计算机论文 |
  • 论文降重 |
  • 毕业论文 |
  • 外文翻译 |
  • 免费论文 |
  • 开题报告 |
  • 心得体会 |

当前位置:论文天下网 -> 免费论文 -> 计算机论文

移动终端汉语拼音输入法及本地搜索接口实现技术(四)

 
     unsigned char i,j;
  unsigned char cInputStrLength=strlen(strInput_mge_str);//输入拼音串长度//
     cpmgePY_Mblen=0;                                //完全匹配组数
     j=0;                                        //j为匹配最大值
     if(*strInput_mge_str=='\0')return(0);       //如果输入空字符返回0//
     cpHZ=&(mgePY_index2[0]);                        //查首字母索引//
     cpHZedge=mgePY_index2+sizeof(mgePY_index2)/sizeof(mgeY_index2[0]);//指向了最后一个索引
 //    strInput_mgePY_str++;                        //指向拼音串第二个字母//
     while(cpHZ < cpHZedge)                       //待查询记录条数
     {
         for(i=0;i<cInputStrLength;i++)
         {
                if(*(strInput_mge_str+i)!=*((*cpHZ).mge_T9+i))    //检查字符串匹配,就是看输入的数字字符是否和索引表中的数字一一相对应`
             {
                 if (i+1 > j)
                 {
                     j=i+1;                    //j为匹配最大值
                     cpHZTemp=cpHZ;
                 }
                 break;                        //发现字母串不配,退出//
             }           
         }
         if((i==cInputStrLength) && (cpmgePY_Mblen<16))    //字母串全配,最多8组
         {
             cpmgePY_Mb[cpmgePY_Mblen]=cpHZ;
             cpmgePY_Mblen++;
         }
         cpHZ++;
     }
      if(j!=cInputStrLength)                 //不完全匹配输出最多匹配的1组
         cpmgePY_Mb[0]=cpHZTemp;
     return (cpmgePY_Mblen);                //输出完全匹配组数,0为无果而终//
 }
4.2  输入法输入模块的设计
 输入法用户输入模块主要包括状态窗口、编辑窗口和候选窗口。而一般状态窗口不用一个窗口来显示,而是用右上角的一个图标来显示当前的输入法状态。所以主要实现编辑窗口和候选窗口。输入法用户界面模块类结构主要有InputEdit类CutString类。InputEdit类和CutString类实现对用户界面的编辑和光标的移动,右侧滑竿光标索引超出屏幕文字行数每行文字的半段,填充区高度显示区域,显示文字的行数,可绘制区域最大高度可绘制区域最大宽度,文本编辑区域每行字数,拼音编辑区宽度输入类型,显示区域宽度,当前拼音对应的字符的输入框的高度显示,当前拼音对应字符的输入框宽度,输入框间隔输,入超时时间等等的处理。InputEdit类、CutString类的类图如图4-2所示:
   
 图4-2  InputEdit类、CutString类的类图
 
 本模块实现的核心代码包括InputEdit类中的InputEdit函数和CutString类中drawCutString函数,InputEdit函数主要实现对输入法用户界面的编辑。其核心代码如下:
 public InputEdit() {
 font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL);
 fontWidth = (byte)font.charWidth(CHAR);
 fontHeight = fontWidth;//(byte)font.getHeight();
 letterWidth = (byte)font.charWidth(LETTER);
 curSpells = new StringBuffer();
 selectedSpell = new StringBuffer();
 inputedChars = new StringBuffer();
 cutString = new CutString();
 editFrameCell = 2;
 editModeWidth = fontWidth + 16;
 inputStatus = STATUS_SPELL;
 init();
 drawCutString函数主要实现光标的绘制,其核心代码如下:
 public int drawCutString(Graphics graphic,String str,int x,int y,int width,int height,boolean isShowEditBG){
   if(str != null){
    if(str.hashCode() != oldHashcode){
     initStatus();
     oldCilpX = graphic.getClipX();
     oldCilpY = graphic.getClipY();
     oldCilpWidth = graphic.getClipWidth();
     oldCilpHeight = graphic.getClipHeight();
     oldFont = graphic.getFont();
     maxCanvasWidth = width - 6;
     maxCanvasHeight = height;
     for(int i = 0;i < str.length();i++){
      sb.append(str.charAt(i));
      if(font.stringWidth(sb.toString()) > maxCanvasWidth - fontWidth){
       textVector.addElement(sb.toString());
       sb.delete(0, sb.length());
      }else if(str.length() - 1 == i){
       textVector.addElement(sb.toString());
      }
     }
     rowCount = textVector.size();
     if(oldStrLength != str.length()){
      if(oldStrLength > str.length()){
       decCursorIndex();
      }else{
       addCursorIndex();
      }
      oldStrLength = str.length();
     }
     isMoreThanCanvas();
     oldHashcode = str.hashCode();
     if(isMoreThanCanvas){
      if(cursorH > (rowCount - maxRowCount - 1))
      rightLineIndex = cursorH - (rowCount - maxRowCount - 1);
     }
    }
   }
   graphic.setFont(font);
   graphic.setClip(x - 1, y -1, maxCanvasWidth + 9, maxCanvasHeight + 2);
   drawEditBG(graphic, x, y, isShowEditBG);
   int count = 0;
   for(int i =0;i < textVector.size();i++){
     graphic.drawString(textVector.elementAt(i).toString(), x,

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5

相关论文
上一篇:网络多媒体资源管理信息系统的开发 下一篇:网上购物电子商务系统
推荐论文 本专业最新论文
Tags:移动 终端 汉语拼音 输入法 本地 搜索 接口 实现 技术 【返回顶部】

相关栏目

自动化相关
计算机论文
工程管理论文
法律论文
医学论文
人力资源
电子专业
电气工程
英语论文
行政管理
电子商务
社科文学
教育论文
物流专业
金融专业
财务管理
会计专业
化学化工材料科学
电子通信
环境科学
经济类
机械模具类
报告,总结,申请书
其他专业论文


关于我们 | 联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 原创毕业论文

 

论文天下网提供论文检测,论文降重,论文范文,论文排版,网站永久域名WWW.GEPUW.NET

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 893628136@qq.com

Copyright@ 2009-2022 GEPUW.NET 论文天下网 版权所有