使用 ChartEngine 自定义显示饼图

2024-01-08

我使用图表引擎成功显示图表,但遇到以下问题:

  1. 我无法减小图表大小。
  2. 图表在屏幕上移动,但我不希望这样。
  3. 我想在屏幕底部再显示一张图像,但这里的图表显示在屏幕中间。我只想在图像的顶部和下面显示图表(如何设置边距)。

请任何人都可以帮助我。提前致谢。

以下是我的代码:

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

您可以使用以下方法设置边距:

defaultRenderer.setMargins(margins);

您可以通过以下方式禁用平移:

defaultRenderer.setPanEnabled(false, false);

您可以在视图中创建图表并将其嵌入到您为其定义布局的活动中,请参阅this https://stackoverflow.com/questions/4062161/android-i-am-using-achartengine-library-for-graphs-but-not-able-to-integrate-a/4079692#4079692.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ChartEngine 自定义显示饼图 的相关文章

随机推荐