工具: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();
}
};
}