2017-02-28 49 views
1

最初はグラフが-10から10になりますが、ユーザーが右にスクロールすると値が評価され、 。そこにリスナーがいますか? 私は、ユーザーが右にスクロールして関数として多くの点を追加すると、xには常にyの値があることを意味します。グラフは、ユーザーが右または左にスクロールアップしたときに構成を維持します。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私は夜にそれを試みます。そして、私は1行目のグラフを描画するときにy軸の後ろの最後の点と最初の点の間に描画されるので、私はこれを尋ねています。 y軸、それは正しくありません。そして、どのようにして、tanxのグラフのように、点が無限に広がるかどうかを検出することができます。その他のグラフは完全に描画されています。ウルの助けのためのThx。 –

+0

、特定のラインセットの伝説を削除できますか? –

+0

凡例を削除できます。私が知っていることから、凡例は、図表には指定されており、線形集合に対しては指定されていません。私が間違っている場合、私は自分自身を更新することができるようにリンクを提供してください:) –

関連する問題