我是新來的Android和非常新的android情節。你可以指我一個使用FixedSizeEditableXYSeries的例子嗎?AndroidPlot FixedSizeEditableXYSeries如何使用
我的目標是創建一個流圖,顯示android應用程序中最新的傳感器讀數。
感謝
===================更新 - 在與@Nick討論=============== =====
public class MainActivity extends AppCompatActivity {
// Create the redrawer so that the plot is updated
private Redrawer redrawer;
// create the message receiver - data is received via broadcasts
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Get extra data included in the Intent
String message = intent.getStringExtra("CurrentHR");
Log.d("ReceivedHR ",message);
// Now put the new data point at the end of the FixedSizeEditableXYSeries, move all data points by 1.
for (int index=0;index<9;index++){
if(index<9){
hrHistory.setY(hrHistory.getY(index+1),index);
}else{
hrHistory.setY(Float.parseFloat(message),9);
}
}
}
};
// create a few references
private XYPlot xyPlot;
private FixedSizeEditableXYSeries hrHistory;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_heart_rate);
// Now find the plot views
xyPlot = (XYPlot)findViewById(R.id.xyPlot);
// Declare the local broadcast manager
LocalBroadcastManager.getInstance(this).registerReceiver(
mMessageReceiver, new IntentFilter("hrUpdate"));
// now put in some data
hrHistory = new FixedSizeEditableXYSeries("HR",10);
xyPlot.addSeries(hrHistory, new LineAndPointFormatter(Color.GREEN,Color.RED,null,null));
xyPlot.setRangeBoundaries(40, 120, BoundaryMode.FIXED);
xyPlot.setDomainBoundaries(0, 20, BoundaryMode.FIXED);
}
@Override
protected void onResume(){
super.onResume();
// set a redraw rate of 1hz and start immediately:
redrawer = new Redrawer(xyPlot, 1, true);
}
}
這給了我一個很好的圖,但沒有線。由於新數據正在填充FixedSizeEditableXYSeries,因此它看起來並不像正在更新的圖。
你想如何顯示數據流?有兩種常用的方法:滾動,其中數據在屏幕上不斷左右移動(例如CPU使用率監視器),缺少更好的名稱,掃描數據從左到右填充屏幕直到屏幕結束時,它會重置回屏幕開始,並覆蓋每個索引處的前一個數據。 (心電圖就是一個很好的例子) – Nick
@Nick,我想在屏幕上從左向右連續移動數據(我想你可以參考這裏的滾動)。我現在將用我現有的代碼更新這個問題,這樣你就可以看到更多。 – MadProgrammer