aChartEngine:获取图形区域上任意点的坐标

时间:2013-05-15 13:53:14

标签: android graph achartengine

我正在使用achartengine来显示线图。我一直试图获取触摸点的坐标(不是线图上的坐标,而是图形区域中的任何位置)。所以我认为 getSeriesAndPointForScreenCoordinate(...)在这种情况下不会有帮助。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

如果你有屏幕坐标点,那么你可以调用chartView.toRealPoint()来获得真实的数据坐标值。

答案 1 :(得分:1)

尝试使用此代码:

myXYPlot.setOnTouchListener(new OnTouchListener(){

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

            switch (event.getAction()) {
            case MotionEvent.ACTION_MOVE:
                displaycoordinates(event);
                break;

            case MotionEvent.ACTION_DOWN:
                displaycoordinates(event); 
                break;                  
            default:
                break;
            }
            return true;
        }           
    });              
}

其中displaycoordinates()定义如下:

public void displaycoordinates(MotionEvent event) {
    // TODO Auto-generated method stub

    float x = event.getX();
    float y = event.getY();

    PointF point = new PointF(x,y);

    NumberFormat nf = new DecimalFormat("#0.00");

    Double j = getXval(x);
    String xval = nf.format(j);

    Double k = getYval(y);
    String yval = nf.format(x);

    if(j>=condition1 && k>=condition2 && j<=condition3 && k<=condition4)
    {
        toast = Toast.makeText(getApplicationContext(), xval+"xval"+yval+" yval", 0);
        toast.show();
    }

}