2017-02-28 127 views
1

最初圖形從-10到10,但我希望當用戶向右滾動評估值和圖形「增長」 。有沒有任何聽衆。 我的意思是,當用戶滾動到右側,然後我添加更多的點作爲函數,總是有一個x的值。當用戶向右或向左滾動時,該圖形將自行構建。MPandroidchart - 我想添加更多的點,當用戶向上或向下滾動或向右或向左

+0

你能否解釋一下你的意思做的**值進行評估**。 –

+0

我編輯了問題。@ AyushBansal –

+0

嘗試使用ChartGesture偵聽器。這裏的鏈接https://github.com/PhilJay/MPAndroidChart/wiki/Interaction-with-the-Chart#gesture-callbacks –

回答

3
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     linechart = (LineChart) findViewById(R.id.chart); 
     new Random(0).nextInt(); 
     linechart.setHighlightPerDragEnabled(true); 
     linechart.setScaleEnabled(true); 
     linechart.setPinchZoom(true); 
     linechart.setDrawGridBackground(false); 
     linechart.getDescription().setEnabled(false); 
     linechart.setOnChartGestureListener(new GestureListener()); 

     LineData lineData = new LineData(); 
     lineData.setValueTextColor(Color.WHITE); 
     linechart.setData(lineData); 

     Legend legend = linechart.getLegend(); 
     legend.setForm(Legend.LegendForm.LINE); 
     legend.setTextColor(Color.WHITE); 

     XAxis xaxis = linechart.getXAxis(); 
     xaxis.setDrawGridLines(true); 
     xaxis.setTextColor(Color.WHITE); 
     xaxis.setTextSize(15f); 
     xaxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
     YAxis yaxis = linechart.getAxisLeft(); 
     yaxis.setTextColor(Color.WHITE); 
     yaxis.setTextSize(15f); 
     yaxis = linechart.getAxisRight(); 
     yaxis.setTextColor(Color.WHITE); 
     yaxis.setTextSize(15f); 
     linechart.invalidate(); 
    } 

    private void addEntry(int number) { 
     data = linechart.getData(); 

     if (data != null) 
     { 
      ILineDataSet set = data.getDataSetByIndex(0); 

      if (set == null) { 
       set = createSet(); 
       data.addDataSet(set); 
      } 
      data.addEntry(new Entry(data.getDataSetByIndex(0).getEntryCount(), number), 0); 
      data.notifyDataChanged(); 
      linechart.notifyDataSetChanged(); 

     } 
    } 

    private LineDataSet createSet() { 

     LineDataSet set = new LineDataSet(null, ""); 
     set.setCubicIntensity(0.0f); 
     set.setAxisDependency(YAxis.AxisDependency.RIGHT); 
     set.setColor(ColorTemplate.getHoloBlue()); 
     set.setCircleColor(ColorTemplate.getHoloBlue()); 
     set.setDrawValues(false); 
     set.setLineWidth(2f); 
     set.setCircleSize(4f); 
     set.setFillAlpha(65); 
     set.disableDashedLine(); 
     return set; 

    } 
    class GestureListener implements OnChartGestureListener { 

     @Override 
     public void onChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture) { 

      addEntry(//add your entries here); 
     } 

     @Override 
     public void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture) { 
      linechart.moveViewToX(data.getEntryCount()); 

     } 

     @Override 
     public void onChartLongPressed(MotionEvent me) { 

     } 

     @Override 
     public void onChartDoubleTapped(MotionEvent me) { 

     } 

     @Override 
     public void onChartSingleTapped(MotionEvent me) { 

     } 

     @Override 
     public void onChartFling(MotionEvent me1, MotionEvent me2, float velocityX, float velocityY) { 

     } 

     @Override 
     public void onChartScale(MotionEvent me, float scaleX, float scaleY) { 

     } 

     @Override 
     public void onChartTranslate(MotionEvent me, float dX, float dY) { 

     } 
    } 

嘗試了這一點

+0

Thx爲你的時間我會在晚上嘗試。是否有任何方法可以刪除linedataset中兩點之間的「線條」,我問這是因爲在繪製1/xa線條的圖形時,會在y軸後的最後一個點和第y軸,這是不正確的。我怎樣才能檢測點是否像在坦克圖的情況下無限大。所有其他圖形都完美繪製。 Thx爲你提供幫助。 –

+0

,我可以刪除特定linedataset的傳說嗎? –

+0

您可以刪除Legend。從我所知道的情況來看,Legend是爲圖表指定的,而不是針對linedataset。如果我錯了,請提供一個鏈接,以便我可以更新自己:) –

相關問題