MPChart實現一個動態折線圖

工具:MPChart庫(下載地址:https://github.com/PhilJay/MPAndroidChart),Android Studio 3.1
使用教程MPChart最新版本使用教程
Xml,一個LineChart.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/linechart"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

思路:
linechart裏有一個yvalues,它的元素是Entry(x,y)就是座標點,x,y。我們只要改變x的座標,顯示後面的x座標讓後面的消失就能實現了。
代碼

public class MainActivity extends AppCompatActivity {
    LineChart lineChart;
    Description description;
    LinkedList yvalues;
    int x=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lineChart=findViewById(R.id.linechart);
        yvalues=new LinkedList();
        handler.postDelayed(runnable,10);
    }
    Handler handler=new Handler();
    Runnable runnable=new Runnable() {
        @Override
        public void run() {
            handler.postDelayed(this,1000);
            x+=1;
            int y= (int) (Math.random()*10);
            yvalues.addLast(new Entry(x,y));
            if (yvalues.size()>10)
            {
                yvalues.removeFirst();
            }
            LineDataSet lineDataSet=new LineDataSet(yvalues,"line1");

            LineData lineData=new LineData(lineDataSet);
  	
 	    lineChart.setData(lineData);
            lineChart.invalidate();
        }
    };
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章