AChartEngine的图表增加点击功能 捕获点击事件和点击位置区域的大小

  次阅读 来源:互联网(转载协议) 2015-10-02 16:08 我要评论(0)

AChartEngine是 一款非常流行的图表软件,网上有太多介绍这个控件如何安装配置的了,但是我还是对这个软件本身的样式不太满意。

现在我在慢慢的修改这个图表控件,有什么进展都会发在这里,这次首先说一个简单的,获取用户点击的点的位置。

示意图:

如何建立一个新的表格在这里就不再赘述了,大家可以参照别的教程。在这里我说几个要点

要点1:

在构建renderer的时候,要加上如下两句话来增加点击功能:

renderer.setClickEnabled(true); //是否可以点击

renderer.setSelectableBuffer(30); //点击区域的大小

要点2:

新建一个listener,来处理点击的事件。

OnClickListener gOCL = new OnClickListener() {

@Override

public void onClick(View v) {

GraphicalView gv = (GraphicalView) v;

//将view转换为可以监听的GraphicalView

SeriesSelection ss = gv.getCurrentSeriesAndPoint();

//获得被点击的系列和点

if (ss == null) return ;

double[] point = new double[]{ss.getXValue(),ss.getValue()};

//获得当前被点击点的X位置和Y数值

final double[] dest = xychart.toScreenPoint(point);

//获得当前被点击点的坐标位置

Toast.makeText(getApplicationContext(), "点击了("+point[0]+","+point[1]+")点\n它在屏幕上的坐标为:("

+dest[0]+","+dest[1]+")", 1).show();

}

};

其中要注意的是,如果想获得屏幕上面点的坐标,那么就不止需要GraphicView,还需要xyChart类的支持。

要点3:

给建立的表格加入监听器即可。

另外SeriesSelection和xychart还有其它的API,比如:

SeriesSelection.getPointIndex();//点序号

SeriesSelection.getSeriesIndex();//序列序号

SeriesSelection.getValue();//点Y值

SeriesSelection.getXValue();//点X值

xychart.toRealPoint();//实际位置

xychart.toScreenPoint();//屏幕位置

大家可以自己去尝试,或者查询ACE的API。

如果大家有不明白的地方,可以去下载DEMO:DEMO下载

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...