使用AChartEngine自定义饼图显示

时间:2012-11-05 07:31:11

标签: android achartengine

我使用Chart Engine成功显示图表,但我遇到了以下问题:

  1. 我无法缩小图表大小。
  2. 图表正在屏幕上移动,但我不希望这样。
  3. 我想在屏幕底部再显示一个图像,但此处的图表显示在屏幕中间。我只想在图像的顶部和底部显示图表(如何设置边距)。
  4. 请任何人都可以帮助我。谢谢。

    以下是我的代码:

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

1 个答案:

答案 0 :(得分:0)

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

defaultRenderer.setMargins(margins);

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

defaultRenderer.setPanEnabled(false, false);

您可以在视图中创建图表并将其嵌入到为其定义布局的活动中,请参阅this