LWUIT + ChartComponent 之一实现饼图(PieChart)
2009-09-12 00:00:00 来源:WEB开发网本文源代码下载地址:http://download.csdn.net/source/872671
本文所用的Chart组件为J2me ChartComponent - ver 1.5.2,该组件的下载页面为http://www.beanizer.org/site/index.php/en/Software/J2me-ChartComponent-ver-1.5.html。按照官网所说,ChartComponent的二进制开发包可以用于个人开发以及商业项目,而源代码则需要购买,为了支持作者开发,最好是购买一份啦。
ChartComponent,基于J2ME的LCDUI,而本文要演示的是,如何把ChartComponent运用到LWUIT之上,其他LCDUI的控件也可以参照这个方法,从而运作在LWUIT上。
在LWUIT上实现Chart功能,可以利用LWUIT固有的组件,混合使用,效果挺好的,例如加入chart的每个图块说明(说明与图块颜色对应)时,可以用FlowLayout排列方式+Label控件,能够自适应,比用UI直接画省好多功夫。
首先,先在主文件UIDemoMIDlet加入以下代码:
/**
* lcdui的图像转换为lwuit的图像
*/
static Image lcdui2lwuit(javax.microedition.lcdui.Image lcdui_img)
{
//新建RGB数组
int[] bufferArray = new int[lcdui_img.getWidth() * lcdui_img.getHeight()];
//把lcdui的Image保存为RGB数组
lcdui_img.getRGB(bufferArray, 0, lcdui_img.getWidth(), 0, 0, lcdui_img.getWidth(), lcdui_img.getHeight());
//********透明背景,可以省略*******************************************//
for(int i=0;i<bufferArray.length;i++){
if((bufferArray[i] & 0x00FFFFFF) == 0x00FFFFFF)//如果是背景
bufferArray[i]=bufferArray[i]&0x00FFFFFF;
}
//********透明背景,可以省略*******************************************//
//新建lwuit的Image,并读取RGB数组
Image result = Image.createImage(bufferArray, lcdui_img.getWidth(), lcdui_img.getHeight());
return result;
}
/**
* RGB颜色转换为int
*/
static int RGBtoInt(int r,int g,int b)
{
String result=Integer.toHexString(r)+Integer.toHexString(g)+Integer.toHexString(b);
return Integer.parseInt(result,16);
}
Tags:LWUIT ChartComponent 之一
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接