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:http://download.csdn.net/detail/icyfox_bupt/6834879
转载请注明来自:http://blog.csdn.net/icyfox_bupt