`

android饼状图表

阅读更多

相信图表再很多统计应用都会应用,再这里我想向介绍一个第三方的jar--j4lChartAndroid.jar,再这里基本上平时用到的图表都有,这里我们就只介绍饼状3d图表

 

1xml文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

     android:orientation="vertical" android:layout_width="fill_parent"

     android:layout_height="fill_parent">

         <LinearLayout android:id="@+id/course_viewflipper"

              android:background="#FFFFFF" android:layout_width="fill_parent"

              android:layout_height="fill_parent">

         </LinearLayout>

</LinearLayout>

 

2activity

public class ShowImage extends Activity {

     /** Called when the activity is first created. */

     ChartLoader cha = new ChartLoader();

     ChartPanel chartPanel;

     static List<ddd> list;

     static double[] valueList;

     static String[] labellist;// 标签值

     static boolean[] gapsValueList;

     static FillStyle[] fillStyle_color;

     static ChartColor[] color = new ChartColor[] {

              GraphicsProvider.getColor(ChartColor.CYAN),

              GraphicsProvider.getColor(ChartColor.BLUE),

              GraphicsProvider.getColor(ChartColor.GREEN),

              GraphicsProvider.getColor(ChartColor.YELLOW),

              GraphicsProvider.getColor(ChartColor.RED),

              GraphicsProvider.getColor(ChartColor.SKYBLUE),

              GraphicsProvider.getColor(ChartColor.PINK) };

     static int[] labelColor = new int[] { Color.CYAN, Color.BLUE,

              Color.GREEN, Color.YELLOW, Color.RED, Color.parseColor("#00CCFF"), Color.parseColor("#ffc0cb") };

     @Override

     public void onCreate(Bundle icicle) {

         super.onCreate(icicle);

         setContentView(R.layout.main);

         list = getData();

         getValues();

         LinearLayout imageview = (LinearLayout) findViewById(R.id.course_viewflipper);

         chartPanel = new ChartPanel(this);

         chartPanel.setChart(Example4());

         imageview.addView(chartPanel);

         setContentView(chartPanel);

     }

 

     public List<ddd> getData() {

         List<ddd> l = new ArrayList<ddd>();

         ddd d1 = new ddd();

         d1.setDoor("南门");

         d1.setTotal(100);

         ddd d2 = new ddd();

         d2.setDoor("西门");

         d2.setTotal(200);

         ddd d3 = new ddd();

         d3.setDoor("北门");

         d3.setTotal(300);

         ddd d4 = new ddd();

         d4.setDoor("东门");

         d4.setTotal(400);

         l.add(d1);

         l.add(d2);

         l.add(d3);

         l.add(d4);

return l;

     }

 

     class ddd {

         String door;

         double total;

         public String getDoor() {

              return door;

         }

         public void setDoor(String door) {

              this.door = door;

         }

         public double getTotal() {

              return total;

         }

         public void setTotal(double total) {

              this.total = total;

         }

     }

 

     public void getValues(){

          valueList= new double[list.size()];// 数值组

          gapsValueList =new boolean[list.size()];// 饼块之间是否分开组

          fillStyle_color= new FillStyle[list.size()];// 颜色组

          labellist= new String[list.size()];// // 图解label

        

          for (int i = 0; i < list.size(); i++) {

               labellist[i] = list.get(i).getDoor();

               valueList[i] = list.get(i).getTotal();

               fillStyle_color[i] = new FillStyle(color[i]);

               if(i<list.size()-1){

               gapsValueList[i] = true;

               }

              }

     }

     // ==============================================

     protected void onDestroy() {

         if (chartPanel != null)

              if (chartPanel.getChart() != null)

                   chartPanel.getChart().stopUpdater();

         super.onDestroy();

     }

 

     public static Chart Example4() {

         PieDataSerie data1 = new PieDataSerie(valueList, fillStyle_color,

                   gapsValueList, labellist);

         data1.valueFont = GraphicsProvider

                   .getFont("Arial", ChartFont.PLAIN, 14);

         // legend

         Legend l = new Legend();

         l.background = new FillStyle(

                   GraphicsProvider.getColor(ChartColor.WHITE));

         l.border = new LineStyle(1,

                   GraphicsProvider.getColor(ChartColor.BLACK),

                   LineStyle.LINE_NORMAL);

         for (int i = 0; i < list.size(); i++) {

              l.addItem(labellist[i], new FillStyle(color[i]));

         }

         // create title

         Title title = new Title("");

         // plotter

         PiePlotter plot = new PiePlotter();

         // 3D effect

         plot.effect3D = true;

         plot.border = new LineStyle(1,                GraphicsProvider.getColor(ChartColor.BLACK),LineStyle.LINE_NORMAL);

         data1.textDistanceToCenter = 1.3;

         plot.labelFormat = "#PERCENTAGE#";

         // create chart

         Chart chart = new Chart(title, plot, null, null);

         // chart background

         chart.back = new FillStyle(GraphicsProvider.getColor(ChartColor.WHITE));

         // chart.back.gradientType = FillStyle.GRADIENT_VERTICAL;

         // add legend

         chart.legend = l;

         // legend position and layout

         chart.layout = Chart.LAYOUT_LEGEND_RIGHT;

         chart.topMargin = 0.1;

      chart.bottomMargin = 0.4; // 20%

         chart.leftMargin =0.1;

         l.verticalLayout = true;

         // add data

         chart.addSerie(data1);

         chart.setHeight(250);

         chart.setWidth(320);

         return chart;

     }

}

  • 大小: 2.8 KB
分享到:
评论
9 楼 cuixuelei 2013-08-21  
图形中RChart Demo 字样,怎么去掉
8 楼 zxuenet 2012-05-22  
erwin_king 写道
因为这个时收费的,所以会有的demo在上面

谢谢~我知了
7 楼 erwin_king 2012-05-10  
因为这个时收费的,所以会有的demo在上面
6 楼 zxuenet 2012-04-23  
您好,请问你用这个第三方jar,在lable这里有 RChart Demo 怎么去掉呢?
5 楼 hahajing9 2012-04-08  
hualikejava 写道
楼主,在onCreate只能setContentView一次就可以了吧。最后面就不用在设置contentView了。

楼上说的极是
4 楼 android_zhang 2012-02-27  
您好,
可以给我发一份饼状图的使用范例吗?
961132502@qq.com
   谢谢
             2012-2-27
3 楼 tianyasifan 2011-08-30  
楼主,这个插件包在哪里可以下载,可否给个地址
2 楼 tianyasifan 2011-08-30  
正在学习报表,很有用,如果自己实现一个这样的报表系统,难度应该很大吧,性能是关键问题,呵呵
1 楼 hualikejava 2011-08-19  
楼主,在onCreate只能setContentView一次就可以了吧。最后面就不用在设置contentView了。

相关推荐

Global site tag (gtag.js) - Google Analytics