2013-11-25 35 views
0

我使用AChartEngine,但由於某些原因,它不是按捏縮放,只有通過按鈕,這裏的Android achartengine是代碼:沒有放大

private XYMultipleSeriesDataset mDataset; 
    private XYMultipleSeriesRenderer mRenderer; 
    private GraphicalView mChartView; 
    private TimeSeries time_series; 

mDataset = new XYMultipleSeriesDataset(); 
     mRenderer = new XYMultipleSeriesRenderer(); 
     mRenderer.setAxisTitleTextSize(16); 
     mRenderer.setChartTitleTextSize(20); 
     mRenderer.setLabelsTextSize(15); 
     mRenderer.setLegendTextSize(15); 
     mRenderer.setPointSize(3f); 
     mRenderer.setZoomRate(0.5f); 
     mRenderer.setZoomButtonsVisible(true); 
     mRenderer.setClickEnabled(true); 

     XYSeriesRenderer r = new XYSeriesRenderer(); 
     r.setColor(Color.GREEN); 
     r.setPointStyle(PointStyle.CIRCLE); 
     r.setFillPoints(true); 
     mRenderer.addSeriesRenderer(r); 
     mRenderer.setClickEnabled(true); 
     mRenderer.setSelectableBuffer(20); 
     mRenderer.setPanEnabled(true); 
     mRenderer.setZoomEnabled(true); 

     time_series = new TimeSeries("test"); 

     mDataset.addSeries(time_series); 

     fillData(); 

     mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer, 
       "yyyy-MM-dd"); 

     ((LinearLayout) findViewById(R.id.chart)).addView(mChartView); 


private void fillData() { 
     long value = new Date().getTime() - 3 * TimeChart.DAY; 
     for (int i = 0; i < 100; i++) { 
      time_series.add(new Date(value + i * TimeChart.DAY/4), i); 
     } 
    } 

這裏是XML部分:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 


    <LinearLayout 
     android:id="@+id/chart" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 
    </LinearLayout> 



</LinearLayout> 

編輯: 此外,它不是在所有

爲圖書館移動我使用的achartengine-1.1.0.jar 任何人都可以看到我做錯了什麼?

謝謝

+1

後刪除'mRenderer.setZoomRate(0.5F)嘗試;'這行。讓我知道發生了什麼事。 – Gunaseelan

+0

謝謝,但仍然不起作用 –

+0

還用setZoomEnabled(true,true)替換setZoomEnabled(true) –

回答

0

我想你現在可能已經找到了答案。但對於遇到同樣問題的人來說,這是一個解決方案。

將點擊監聽器添加到您的GraphicalView。 在這種情況下 -

mChartView.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
    } 
}); 

這應該有所斬斷。

0

這是一個很好的破解。出於某種原因,即使沒有任何內部代碼,ClickListener也會使平移和縮放工作。除此之外,圖表是靜態的。

這裏是代碼...

@Override 
    protected void onResume() { 
     super.onResume(); 
     if (mChartView == null) { 
      LinearLayout layout = (LinearLayout) findViewById(R.id.chart_container_layout); 
      mChartView = ChartFactory.getLineChartView(this, dataset, renderer); 
      mChartView.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 
        // TODO Auto-generated method stub 
       } 
      }); 
      layout.addView(mChartView); 

     } else { 
      mChartView.repaint(); 
     } 
    }