android hellochart 实时绘制点
来源:互联网 发布:linux vi命令怎么使用 编辑:程序博客网 时间:2024/06/09 17:24
导入
compile 'com.github.lecho:hellocharts-library:1.5.8@aar'
布局文件
<lecho.lib.hellocharts.view.LineChartView android:id="@+id/line_chart" android:layout_width="match_parent" android:layout_height="400dp" /><TextView android:id="@+id/light_intensity_text" android:layout_width="match_parent" android:layout_height="40dp" />
主要代码
public class MainActivity extends AppCompatActivity implements SensorEventListener{ private LineChartView lineChartView; private TextView lightIntensityTExtView; private List<PointValue> pointValues=new ArrayList<>(); private List<AxisValue> axisValues=new ArrayList<>(); private List<Line> lines=new ArrayList<>(); LineChartData data=new LineChartData(); private SensorManager sensorManager; private Sensor lightSensor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lineChartView=(LineChartView)findViewById(R.id.line_chart); lightIntensityTExtView=(TextView)findViewById(R.id.light_intensity_text); sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE); lightSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); initLineChart(); } @Override protected void onResume() { super.onResume(); sensorManager.registerListener(this,lightSensor,sensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onStop() { super.onStop(); sensorManager.unregisterListener(this); } @Override public void onSensorChanged(SensorEvent event) { lightIntensityTExtView.setText("光强:"+event.values[0]); drawNewPoint(event.values[0]); Log.d("point size:",Integer.toString(pointValues.size())); Log.d("axis size:",Integer.toString(axisValues.size())); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } private void initLineChart(){ //坐标轴 Axis axisX=new Axis(); // axisX.setHasTiltedLabels(true); axisX.setTextColor(Color.BLACK); axisX.setMaxLabelChars(5); axisX.setValues(axisValues); axisX.setMaxLabelChars(5); data.setAxisXBottom(axisX); Axis axisY=new Axis(); axisY.setName("Y"); data.setAxisYLeft(axisY); //设置行为属性 lineChartView.setInteractive(true); lineChartView.setZoomType(ZoomType.HORIZONTAL_AND_VERTICAL); lineChartView.setScrollEnabled(true); lineChartView.setContainerScrollEnabled(true, ContainerScrollType.HORIZONTAL); lineChartView.setVisibility(View.VISIBLE); } private void drawNewPoint(float value){ axisValues.add(new AxisValue(axisValues.size()+1).setLabel(Integer.toString(axisValues.size()+1))); pointValues.add(new PointValue(pointValues.size()+1,(int)value)); Line line=new Line(pointValues).setColor(Color.BLUE); line.setShape(ValueShape.CIRCLE); line.setCubic(true); line.setFilled(false); line.setHasLabels(true); line.setHasLines(true); lines.add(line); data.setLines(lines); lineChartView.setLineChartData(data); lineChartView.setZoomType(ZoomType.VERTICAL); int x=axisValues.size(); Log.d("x-------->",Integer.toString(x)); if (x>20){ lineChartView.setCurrentViewport(refreshViewport(x-20,x,lineChartView.getMaximumViewport().height(),0)); } } private Viewport refreshViewport(float left,float right,float top,float bottom){ Viewport viewport=new Viewport(); viewport.left=left; viewport.right=right; viewport.top=top; viewport.bottom=bottom; return viewport; }}
阅读全文
0 0
- android hellochart 实时绘制点
- Android HelloChart 实现输入数据的实时曲线绘制,并保证曲线无卡滞
- Android图表库HelloChart绘制多折线图
- Android绘制小圆点
- hellochart android项目属性设置
- AChartEngine实现Android实时曲线绘制
- AChartEngine实现Android实时曲线绘制
- openGL ES Android 绘制点
- android hellochart的使用 画图形
- Android hellochart折线图各属性设置
- Android 点9图的绘制
- Android HelloChart开源库图表(一)之折线图
- Android HelloChart开源库图表(二)之饼图
- 关于Android图表开源库HelloChart的坐标属性设置
- android 图表框架 hellochart columnchart属性 其他同类
- Android hellochart使用(可以在Eclipse中运行)
- Android中使用HelloChart开源库图表来实现折线图
- 实时曲线绘制
- android 怎样在appwidget中使用动画
- 深度学习实践操作—从小白到大白(三):Linux远程控制
- 7章 链接
- SharePoint 2010 使用Install-SPSolution部署wsp包状态一直是”正在部署”
- 新来的,呵呵
- android hellochart 实时绘制点
- Quartz
- 内网和外网之间的通信(端口映射原理)
- 1.spring基础:spring概述+基础配置+Java配置+AOP
- ndk bundle16出现的问题
- JS原型链图
- QT多线程临界资源互斥
- auto_report
- 三子棋游戏