Achartengine更改FitZoom按钮的单击操作

时间:2012-03-12 13:32:54

标签: android achartengine

对于我的应用程序并不是真正有用的图形的fitZoom按钮,但该空间非常适合显示带有一些图形信息的上下文菜单。我已经更改了按钮的图像和所有内容,但我不知道如何更改按钮功能,因为上下文菜单与活动有关,而与图表无关。

我不知道我是否解释得很好,可能有点乱,但告诉我哪一部分不够清楚!

任何想法?

非常感谢你!

1 个答案:

答案 0 :(得分:0)

我自己以一种非常丑陋的方式解决了它,但它确实有效!

首先,您必须取消激活zoomFit onClick操作,然后执行下一步操作:

我在achartengine库的GraphicalView中添加了这个函数,告诉我何时按下了fit按钮:

    public boolean isCompare(MotionEvent event) {
    int action = event.getAction();
    RectF zoomR = new RectF();
    zoomR =  getZoomRectangle();;
    boolean comp = false;
    if (action == MotionEvent.ACTION_DOWN) {
        oldX = event.getX(0);
        oldY = event.getY(0);
        if (mRenderer != null && mRenderer.isZoomEnabled()
                && mZoomR.contains(oldX, oldY)) {
            if (oldX < mZoomR.left + mZoomR.width() / 3) {
                comp = false;
            } else if (oldX < mZoomR.left + mZoomR.width() * 2 / 3) {
                comp = false;
            } else {
                comp= true;
            }
                // graphicalView.zoomReset();
            }
        }
    return comp;
}

Ans我将onTouchListener添加到我的Activity:

    public void setChartListener(final GraphicalView view){
    view.setOnTouchListener(new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub

            view.onTouchEvent(event);
            boolean is = view.isCompare(event);
            if (is) {
                //Action to do when pressed
            } else {
                                    //null
            }
            return is;
        }
    });
}

如果有人知道更好的方式......