2015-04-24 125 views
0

我製作了一個動態條形圖演示,我在每次點擊時重新繪製下一個條形圖。 但問題是,Android AchartEngine條形圖繪製問題

  • 酒吧是從右側添加。
  • 酒吧大小繼續在新的酒吧添加合同。

我必須做一個酒吧,從左邊添加固定欄寬度。

下面是屏幕截圖什麼發生 On every click bar size changes and adding from right

CODE:

dataset = new XYMultipleSeriesDataset(); 

    series = new XYSeries("data"); 

    dataset.addSeries(series); 

    /* 
    * for (int i = 0; i < 20; i++) { series.add(0, 0); } 
    */ 

    // Now we create the renderer 
    renderer = new XYSeriesRenderer(); 
    renderer.setLineWidth(1); 
    renderer.setColor(Color.RED); 
    renderer.setChartValuesSpacing(1); 
    // Include low and max value 
    // we add point markers 
    renderer.setPointStyle(PointStyle.CIRCLE); 
    renderer.setPointStrokeWidth(.1f); 
    renderer.setShowLegendItem(false); 

    mRenderer = new XYMultipleSeriesRenderer(); 
    mRenderer.addSeriesRenderer(renderer); 
    mRenderer.setBackgroundColor(Color.argb(0x00, 0xff, 0xff, 0xff)); 

    // We want to avoid black border 
    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // transparent 
    mRenderer.setAxesColor(Color.argb(0x00, 0xff, 0x00, 0x00)); 
    mRenderer.setGridColor(Color.argb(0x00, 0xff, 0x00, 0x00)); // margins 

    // margins 
    // Disable Pan on two axis 
    mRenderer.setPanEnabled(false, false); 
    mRenderer.setYAxisMax(20); 
    mRenderer.setYAxisMin(0); 

    mRenderer.setShowGrid(false); // we show the grid 
    mRenderer.clearYTextLabels(); 
    mRenderer.setShowGridY(false); 
    mRenderer.setApplyBackgroundColor(true); 
    mRenderer.setBackgroundColor(Color.argb(0x00, 0xff, 0xff, 0xff)); 
    mRenderer.setMarginsColor(Color.argb(0x00, 0xff, 0xff, 0xff)); 
    mRenderer.setPanEnabled(false, false); 
    mRenderer.setZoomEnabled(false, false); 
    mRenderer.setShowLabels(false); 
    mRenderer.setXLabelsPadding(2); 
    mRenderer.setPointSize(1); 
    mRenderer.setBarSpacing(.2); 

    mChartView = ChartFactory.getBarChartView(this, dataset, mRenderer, 
      BarChart.Type.DEFAULT); 

    graphLayout.addView(mChartView, 0); 

    b = (Button) findViewById(R.id.button1); 
    b.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      generate(); 

     } 
    }); 

} 

protected void generate() { 
    int r = randInt(1, 20); 
    // dataset.addSeries(series); 

    series.add(0, r); 

    mChartView.repaint(); 
} 

回答

0

設置multiRenderer.setXAxisMax(maxX的);值

maxX =與圖表中的系列數量。 。如果你想讓它不收縮,請嘗試設置maxX值,該值只允許圖表顯示圖表中所有系列的25%,我的示例代碼如下:

multiRenderer.setXAxisMax(maxX * .25);