在Android中绘制触摸交互式图表

时间:2012-02-07 22:02:28

标签: android charts

我需要在Android中使用图表并且未能成功尝试各种aChartEngine,AndroidPlot和其他库...我需要用户点击一个项目并捕获事件,这些库不处理这个。 所以我决定从头开始构建图表;我想使用画布,但我想知道如何在绘制的项目上获得触摸事件(如果可能避免获取触摸坐标并查看它们是否与对象相交,如果我处理设备旋转,这可能很难处理)。 有没有任何可以触摸的画布绘制图像的例子?

1 个答案:

答案 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;
            }
        });

当然,如果您需要确切知道按下了哪个切片,则必须添加一些逻辑以根据点和角度确定切片。

相关问题