我使用AChartEngine Api创建了动态折线图,显示了G-Force值的变化.一切正常,但当图形在X轴向前移动时,我必须在X轴上手动滚动才能进一步查看,如果您没有正确使用我,请查看下面的图像.

如何让它在x轴上自动滚动以避免手动滚动?

以下是我的代码

public class GraphActivity extends Activity implements SensorEventListener{

private LinearLayout lyGforce;

//=== G-force =======

private SensorManager mSensorManager;

private Sensor mAccelerometer;

private float gOffset;

private boolean calibrate;

private static TimeSeries timeSeriesGforce;

private static XYMultipleSeriesDataset datasetGforce;

private static XYMultipleSeriesRenderer rendererGforce;

private static XYSeriesRenderer rendererSeriesGforce;

private static GraphicalView viewGforce;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.mainactivity);

lyGforce = (LinearLayout) findViewById(R.id.lygforce);

//=========== G-force =======

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

datasetGforce = new XYMultipleSeriesDataset();

rendererGforce = new XYMultipleSeriesRenderer();

rendererGforce.setApplyBackgroundColor(true);

rendererGforce.setBackgroundColor(Color.argb(100, 50, 50, 50));

rendererGforce.setAxisTitleTextSize(16);

rendererGforce.setChartTitleTextSize(20);

rendererGforce.setLabelsTextSize(15);

rendererGforce.setLegendTextSize(15);

rendererGforce.setMargins(new int[] { 20, 30, 15, 0 });

rendererGforce.setZoomButtonsVisible(true);

rendererGforce.setPointSize(10);

rendererGforce.setShowGrid(true);

rendererGforce.setGridColor(Color.WHITE);

rendererSeriesGforce = new XYSeriesRenderer();

rendererSeriesGforce.setColor(Color.GREEN);

rendererSeriesGforce.setLineWidth(2);

rendererGforce.addSeriesRenderer(rendererSeriesGforce);

timeSeriesGforce = new TimeSeries("G-Force");

datasetGforce.addSeries(timeSeriesGforce);

viewGforce = ChartFactory.getTimeChartView(this, datasetGforce, rendererGforce, "");

viewGforce.refreshDrawableState();

viewGforce.repaint();

lyGforce.addView(viewGforce);

}

@Override

protected void onResume() {

// TODO Auto-generated method stub

super.onResume();

// ============= G-force ==================//

calibrate = true;

mSensorManager.registerListener(this, mAccelerometer,

SensorManager.SENSOR_DELAY_UI);

}

@Override

protected void onPause() {

// TODO Auto-generated method stub

super.onPause();

//========== G-force=============//

mSensorManager.unregisterListener(this);

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

// TODO Auto-generated method stub

}

//========== G-force=============//

@Override

public void onSensorChanged(SensorEvent event) {

// TODO Auto-generated method stub

switch (event.sensor.getType()) {

case Sensor.TYPE_ACCELEROMETER:

float x = event.values[0];

float y = event.values[1]; // Use to calculate G-Force value

float z = event.values[2];

if(calibrate)

gOffset = y - SensorManager.GRAVITY_EARTH;

double gForce = ((y - gOffset) / SensorManager.GRAVITY_EARTH);

timeSeriesGforce.add(new Date(), gForce);

rendererGforce.setXAxisMax(rendererGforce.getXAxisMax() + 30);

rendererGforce.setXAxisMin(rendererGforce.getXAxisMin() + 30);

viewGforce.repaint();

Log.e("NIRAV","G-Force: "+String.valueOf(gForce));

calibrate = false;

break;

default:

break;

}

}

}

android 动态移动xy,android – 如何使用AChartEngine动态线图和X轴自动平移(滚动)?...相关推荐

  1. 【Android 应用开发】Android 图表绘制 achartengine 示例解析

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38420197 一. AChartEngine 简介 1. 项 ...

  2. android 动态人脸识别码,android OpenCV研究之动态人脸识别

    随着直播渐渐的火起来,像抱着直播大腿的其他功能也渐渐的火起来了,比如说人脸识别.说起人脸识别用处甚广,比如说有以这个功能为核心的app:美颜相机.美图秀秀.SNOW等等,但是美颜相机和美图秀秀是用的国 ...

  3. android asynctask源码分析,Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)...

    本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法.分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,noti ...

  4. android manifest 权限组,Android的单个或多个权限动态申请

    前言 在Android 6.0(API 级别 23)以下申请权限是非常简单的,直接在AndroidManifest.xml这个配置文件中加入申请权限的列表就可以了,比如我要申请四个权限,如下: 但是在 ...

  5. android 动态设置padding,Android动态设置控件大小以及设定margin以及padding值

    http://www.aichengxu.com/Java/73893.htm Android动态设置控件大小以及设定margin以及padding值,有需要的朋友可以参考下. 一.概述 在andro ...

  6. Android 插件化原理学习 —— Hook 机制之动态代理

    前言 为了实现 App 的快速迭代更新,基于 H5 Hybrid 的解决方案有很多,由于 webview 本身的性能问题,也随之出现了很多基于 JS 引擎实现的原生渲染的方案,例如 React Nat ...

  7. (转载)Android GradientDrawable(shape标签定义) 静态使用和动态使用(圆角,渐变实现)

    最近被吐槽界面太丑,还是很尴尬的,全公司就一个UI设计师,所以很多事情还是不忍直视,一个同事问我,背景可不可以使用渐变的感觉,然后我就有种突然感觉眼前一亮的感觉.还真的没有做过这方面的东西,单纯使用渐 ...

  8. 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )

    文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...

  9. 【Android 逆向】Android 进程注入工具开发 ( 远程进程注入动态库文件操作 | 注入动态库 加载 业务动态库 | 业务动态库启动 | pthread_create 线程开发 )

    文章目录 前言 一.加载 libnattive.so 动态库 二. libnattive.so 动态库启动 三. pthread_create 线程开发 四. 线程执行函数 前言 libbridge. ...

最新文章

  1. Django快速分页
  2. 银行启动开放战略,能否赢回金融科技下半场?
  3. centos 6.4 /var/log/secure 不记录日志的問題
  4. git常见的回退操作
  5. java dictionary 实例化_Java Dictionary put()用法及代码示例
  6. java wate_Trapping Rain Water leetcode java
  7. Apache Flink 结合 Kafka 构建端到端的 Exactly-Once 处理
  8. 科学计算机clr,科学计算器按键功能汇总
  9. mysql openfileslimit 设置_mysql open_files_limit值更改无效
  10. ORACLE分页查询SQL语法——高效的分页
  11. arcgis中dem坐标定义_ArcGIS中的地理坐标系转换方法参数(二) | 学步园
  12. 服务器显示AL024是什么意思,云端时代云终端快速部署指南(S11AL).ppt
  13. 2021年T电梯修理考试题及T电梯修理模拟考试题
  14. 计算机课搞事情检讨,【热门】作弊检讨书范文10篇
  15. Lens shading
  16. 题解 - [POI2008]KUP-Plot purchase
  17. rss下载_Microsoft下载中心RSS提要
  18. 论游戏中Buff的实现
  19. Android 蓝牙
  20. 中国火炬统计年鉴(2008-2021)

热门文章

  1. Python学习笔记:返回函数
  2. vs2013 error MSB8031 MBCSMFC问题的解决
  3. u盘安装linux启动报错,U盘安装centos7,启动报错
  4. 科大星云诗社动态20210224
  5. 新挑战之打造一流能源新材计算平台 2018-10-10
  6. 机器学习、深度学习、强化学习课程超级大列表!
  7. 用ConfigParser模块读写conf配置文件
  8. 十大开源推荐系统简介 [转自oschina]
  9. 统计特性和概率估计-1 (数学推导与证明)
  10. Android常用的开源框架