基础知识:一些实用的图形用户界面方法

文章作者 100test 发表时间 2007:08:01 13:07:58
来源 100Test.Com百考试题网


这个函数已反复应用于多个手机应用软件平台
用法:参数定义: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.0deleteCharAt(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 g.drawString(clipStr[ i ],x,y i*FONTH,0).
}


参数定义:clipStr——先前分割好的字符串数组
font——字体
color——颜色
x,y——打印的屏幕位置

注意,切割和打印函数的字体参数必须保持一致!

半透明技术(限MIDP2.0)

// 获得半透明图片,透明度从0到10共分为11个等级
public static final Image alfImage(Image img,int alf){
if(img == null){
System.out.println("alfImage").
return null.
}
if(alf < 0)
alf = 0.
else if(alf > 10)
alf = 10.
int imgW = img.getWidth().
int imgH = img.getHeight().
int[] RGBData = new int[imgW*imgH].
img.getRGB(RGBData,0,imgW,0,0,imgW,imgH).
int tmp = ((alf*255/10) << 24)|0x00ffffff.
for(int i=0.i RGBData &.= tmp.
Image o_Img = Image.createRGBImage(RGBData,imgW,imgH,true).
return o_Img.
}

src="/java/js/wxgg_java.js">

相关文章


Java编程思想面向对象的逻辑思维方法
如何有效防止Java程序源码被人偷窥?[1]
入门知识讲解JAVA的类和方法
java初学者实践教程27-applet
基础知识:一些实用的图形用户界面方法
java初学者实践教程26-网络程序
java初学者实践教程25-多线程
EJB初学者常有的十一个疑惑
java初学者实践教程24-反射
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛