我需要在Android中使用图表并且未能成功尝试各种aChartEngine,AndroidPlot和其他库...我需要用户点击一个项目并捕获事件,这些库不处理这个。 所以我决定从头开始构建图表;我想使用画布,但我想知道如何在绘制的项目上获得触摸事件(如果可能避免获取触摸坐标并查看它们是否与对象相交,如果我处理设备旋转,这可能很难处理)。 有没有任何可以触摸的画布绘制图像的例子?
答案 0 :(得分:0)
很容易。在用于绘制图表的视图上添加TouchListener,然后检查触摸点是否在您的圆圈内。在这个例子中,我正在检查触摸点是否在饼图周围的矩形内:
this.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
if (x < (centreX-r) || x> (centreX+r) || y <(centreY-r) || y>(centreY+r)) {
return false;
}
//do whatever you need to do
return true;
}
});
当然,如果您需要确切知道按下了哪个切片,则必须添加一些逻辑以根据点和角度确定切片。