WEB开发网
开发学院软件开发Java MIDP中处理文字的换行 阅读

MIDP中处理文字的换行

 2007-12-23 12:33:54 来源:WEB开发网   
核心提示: 在游戏中,尤其是情景类的游戏当中,MIDP中处理文字的换行,往往需要大量情节介绍的文字,要在小小的手机屏幕上显示这些文字,以便于显示 String tmpStr; Vector InfoLines = null; InfoLines = new Vector(); int tmpint; //需要换行的位置 w
    在游戏中,尤其是情景类的游戏当中,往往需要大量情节介绍的文字。要在小小的手机屏幕上显示这些文字,就必须对这些文字进行处理,使其能正确的换行,显示在你想要显示的宽度的范围内。下面我就会详细的介绍如何处理文字的换行。

   首先应该计算需要换行的位置。这里我们以文字需要显示的宽度linewd,和“\n”为换行的标志

   static public int ChangLine(String str, Font font, int linewd, boolean fullWord)
{ // 计算需要换行的位置  str:需要显示的文字  font:文字的字体  linewd:需要显示的宽度 
    int len = 0, wd = 0;
     for (int i = 0; i < str.length(); i++) 
       { 
          if (str.charAt(i) == '\n')
           {
             if (i == 0)
              return len + 1;
             else
              return len + 2;
            }
          wd += font.charWidth(str.charAt(i));
           if (wd > linewd)
           {
             if (fullword)
             {
               for (int j = len; j >= 0; j--)
                 {
                    if (str.charAt(j) < 0x30 str.charAt(j) >= 128)
                    {
                      len = j;
                       break;
                    }
                }
             }
             return len + 1;
          }
        len = i;
    }
      return 0;
}


    计算好位置后,就开始为文字分行。

 static public void DoLine(String infostr, int len)

   { // 为字符串分行,以便于显示
   String tmpStr;
      Vector InfoLines = null;
      InfoLines = new Vector();
      int tmpint;  //需要换行的位置
   while (true)
      {
         tmpint = ChangLine(infostr, DefaultFont, len, false);
         if (tmpint == 0)
         {
            InfoLines.addElement(infostr);
            break;
         }
        else
        {
           if (infostr.charAt(tmpint - 1) == '\n')
              tmpStr = infostr.substring(0, tmpint - 1);
           else
             tmpStr = infostr.substring(0, tmpint);

         InfoLines.addElement(tmpStr);
         infostr = infostr.substring(tmpint, infostr.length());

       }
    }
}

以上就是处理文字分行的代码。接下来我讲介绍程序中制作文字的滚屏效果。请关注后续文章。

(出处:http://www.cncms.com)


Tags:MIDP 处理 文字

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接