android饼状图表

来源:互联网 发布:mac xshell下载 编辑:程序博客网 时间:2024/04/28 18:00

android饼状图表

    博客分类: 
  • 移动android开发
AndroidXML

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

 

1、xml文件

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

 

2、activity类

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);


     }

 

     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(){

          valueListnew double[list.size()];// 数值组

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

          fillStyle_colornew FillStyle[list.size()];// 颜色组

          labellistnew 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(valueListfillStyle_color,

                   gapsValueListlabellist);

         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, nullnull);

         // 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;

     }

}

原创粉丝点击