自定义饼图显示使用ChartEngine [英] customizing Piechart displayed by using ChartEngine

查看:97
本文介绍了自定义饼图显示使用ChartEngine的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我成功地用图表引擎显示的图表,但我患了如下问题:

  1. 我无法减少图表的大小。
  2. 图是在屏幕上移动,但我不希望出现这种情况。
  3. 我想显示在屏幕的底部多一个图像,但这里图表显示在屏幕的中间。我只是想在上面和下面的图片显示的图表(如何设置页边距)。

请任何一个可以帮助提前me.Thanks。

以下是我的code:

 公共类MainActivity延伸活动{

私有String [] mMonth =新的String [] {
            简,月,月,月,月,君,
            七月,月,月,月,月,月
        };

@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);


    openChart();


}

私人无效openChart(){

    双[]分布= {10,200,3,400,500,60};
    串[] DIS = {10,200,13,400,500,60};
    //颜色每个饼图节
    INT []颜色= {Color.BLUE,Color.MAGENTA,Color.GREEN,Color.CYAN,Color.RED,
                     Color.YELLOW};

    //实例化CategorySeries绘制饼图
    CategorySeries distributionSeries =新CategorySeries(样本);
    的for(int i = 0; I< distribution.length;我++){
        //添加具有它的价值和命名切片饼图
        distributionSeries.add(DIS [I]中,分配[I]);

    }

    //实例化渲染饼图
    DefaultRenderer defaultRenderer =新DefaultRenderer();
    的for(int i = 0; I< distribution.length;我++){
        SimpleSeriesRenderer seriesRenderer =新SimpleSeriesRenderer();
        seriesRenderer.setColor(颜色[I]);
        seriesRenderer.setDisplayChartValues​​(真正的);

        //添加渲染器片
        defaultRenderer.setShowLegend(假);
        defaultRenderer.addSeriesRenderer(seriesRenderer);
        INT月[] = defaultRenderer.getMargins();
        的System.out.println(MAR);
    }

    //创建一个意图情节线图使用的数据集和multipleRenderer
    意向意图= ChartFactory.getPieChartIntent(getBaseContext(),distributionSeries,defaultRenderer,);

    //开始活动
    startActivity(意向);

}

@覆盖
公共布尔onCreateOptionsMenu(功能菜单){
    。getMenuInflater()膨胀(R.menu.activity_main,菜单);
    返回true;
}
}
 

解决方案

您可以通过设置页边距:

  defaultRenderer.setMargins(利润);
 

您可以禁用平移是这样的:

  defaultRenderer.setPanEnabled(假的,假的);
 

您可以创建一个图表中的观点,并将其嵌入您定义的布局一个活动里面,见<一href="http://stackoverflow.com/questions/4062161/android-i-am-using-achartengine-library-for-graphs-but-not-able-to-integrate-a/4079692#4079692">this.

I am successfully displaying charts by using Chart Engine but I am suffering from below problems:

  1. I am unable to reduce the Chart Size.
  2. Chart is moving on the screen but I don't want that.
  3. I want to display one more image in the bottom of the screen but here chart is displayed in the middle of the screen. I just want to display chart at the top and below image(How to set margins).

Please any one can help me.Thanks in advance.

Following is my code:

public class MainActivity extends Activity {    

private String[] mMonth = new String[] {
            "Jan", "Feb" , "Mar", "Apr", "May", "Jun",
            "Jul", "Aug" , "Sep", "Oct", "Nov", "Dec"
        };

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    openChart();                        


}

private void openChart(){       

    double[] distribution = { 10,200,3,400,500,60} ;
    String[] dis = { "10","200","13","400","500","60"} ;
    // Color of each Pie Chart Sections
    int[] colors = { Color.BLUE, Color.MAGENTA, Color.GREEN, Color.CYAN, Color.RED,
                     Color.YELLOW };

    // Instantiating CategorySeries to plot Pie Chart       
    CategorySeries distributionSeries = new CategorySeries("Sample");
    for(int i=0 ;i < distribution.length;i++){
        // Adding a slice with its values and name to the Pie Chart
        distributionSeries.add(dis[i],distribution[i]);

    }   

    // Instantiating a renderer for the Pie Chart
    DefaultRenderer defaultRenderer  = new DefaultRenderer();       
    for(int i = 0 ;i<distribution.length;i++){          
        SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();       
        seriesRenderer.setColor(colors[i]);
        seriesRenderer.setDisplayChartValues(true);

        // Adding a renderer for a slice
        defaultRenderer.setShowLegend(false);
        defaultRenderer.addSeriesRenderer(seriesRenderer);
        int mar[]=defaultRenderer.getMargins();
        System.out.println(mar);
    }

    // Creating an intent to plot bar chart using dataset and multipleRenderer      
    Intent intent = ChartFactory.getPieChartIntent(getBaseContext(), distributionSeries , defaultRenderer, "");     

    // Start Activity
    startActivity(intent);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}
}

解决方案

You can set the margins by using:

defaultRenderer.setMargins(margins);

You can disable panning this way:

defaultRenderer.setPanEnabled(false, false);

You can create a chart in a view and embed it inside an activity that you define the layout for, see this.

这篇关于自定义饼图显示使用ChartEngine的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆