这个函数已反复应用于多个手机应用软件平台
用法:参数定义:str——要分割的字符串
font——字体
rowMaxW——分割后每行宽度
支持标示符:
\n 换行
\t 插入两个汉字长度的空格
| public static final String[] clipString(String str,Font font,int rowMaxW){ if(str == null) return null; if(rowMaxW < font.charWidth('哈')) rowMaxW = font.charWidth('哈'); int strID = 0; int rowW = 0; Vector strManager = new Vector(); char ch = ' '; while(str.length() > strID){ ch = str.charAt(strID); switch(ch) { case '\n': strManager.addElement(str.substring(0,strID)); str = str.substring(strID 1); rowW = 0; strID = 0; break; case '\t': StringBuffer sb = new StringBuffer(str); sb.deleteCharAt(strID); sb.insert(strID," "); str = sb.toString(); break; default: if(rowW font.charWidth(ch) > rowMaxW){ strManager.addElement(str.substring(0,strID)); str = str.substring(strID); rowW = 0; strID = 0; }else{ rowW = font.charWidth(ch); strID ; } } } strManager.addElement(str); String[] o_Str = new String[strManager.size()]; strManager.copyInto(o_Str); return o_Str; } |
返回结果是一个已切割好的String数组,只要用一个循环打印出来就可以了
| public static final void drawClipString(Graphics g,String[] clipStr,Font font,int color,int x,int y){ if(clipStr == null){ System.out.println("drawClipString"); return; } int FONTH = font.getHeight(); g.setFont(font); g.setColor(color); for(int i=0;i<clipStr.length;i ) g.drawString(clipStr[ i ],x,y i*FONTH,0); } |
半透明技术(限MIDP2.0)
| 共2页: 上一页 1 [2] 下一页 | |||
![]() |