WEB开发网
开发学院软件开发Java LWUIT + ChartComponent 之一实现饼图(PieChart) 阅读

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-Ch

LWUIT + ChartComponent 之一实现饼图(PieChart)

本文源代码下载地址: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);
    }

1 2  下一页

Tags:LWUIT ChartComponent 之一

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