代码改变世界

Android饼图Pie Chart

2015-01-07 10:07  Weiggle  阅读(852)  评论(0编辑  收藏  举报

饼图 用的是AChartEngine

需要引用achartengine-1.0.0.jar包。下载地址:http://download.csdn.net/detail/yaohucaizi/5128672。

具体代码如下:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    //    setContentView(R.layout.activity_pie_chart);
        
        double[] values=new double[]{12,14,11,10,19};
        int[] colors=new int[]{Color.BLUE,Color.GREEN,Color.MAGENTA,Color.YELLOW,Color.CYAN};
        
        DefaultRenderer renderer=buildCategoryRenderer(colors);
        renderer.setZoomButtonsVisible(true);// 显示放大缩小功能按钮
        renderer.setZoomEnabled(true);//设置是否能放大
        renderer.setChartTitle("饼图示例");// 设置饼图标题
        renderer.setChartTitleTextSize(30);// 设置饼图标题大小
        
        
        //通过ChartFactory获取饼图
        View view=ChartFactory.getPieChartView(this, buildCategoryDataset("Project budget", values), renderer);
        view.setBackgroundColor(Color.BLACK);
        setContentView(view);
    }
    

    //构建数据源CategorySeries
    private CategorySeries buildCategoryDataset(String title, double[] values) {
        
        CategorySeries series=new CategorySeries(title);
        int k=0;
        for(double value:values){
            series.add("Project" + ++k +"(" +value+ ")",value);
            
        }
        
        return series;
    }

    //绘制饼图
    private DefaultRenderer buildCategoryRenderer(int[] colors) {
        DefaultRenderer renderer=new DefaultRenderer();// PieChart的主要描绘器
        renderer.setLabelsTextSize(15); //设置标签文字大小
        renderer.setLegendTextSize(15);// 设置图例字体大小
        renderer.setMargins(new int[]{20,30,15,0});
        
        for(int color:colors){
            SimpleSeriesRenderer r=new SimpleSeriesRenderer();
            r.setColor(color);
            renderer.addSeriesRenderer(r);
        }
            
        return renderer;
    }