Afreechart:当触摸另一个图形时,如何在一个图形上反映更改

时间:2014-07-08 05:50:23

标签: android graph

任何人都可以帮助我。 我在这里要做的是,当图1中的X轴范围(精度)被缩放时,相同的范围也会反映在图2(延迟)上。

清楚, 当我们缩放时,范围2,4,6,8,10将变为1,2,3,4,5。 当在图1上发生这种变化时,同样的范围也应该显示在图2上。 我怎么能做到这一点。

enter image description here

我尝试过使用以下方式:

  1. 在“延迟视图”图表中执行某些操作时,分析了在“准确性视图”图表中触发事件的方法(反之亦然)。
  2. 使用dispatchOnTouch函数编写一个代码来触发事件。不幸的是,dispatchOnTouch没有执行该事件。
  3. 调查了dispatchOnTouch函数中的问题,发现ControllerView类上的OnTouchEvent忽略了新事件。
  4. 感谢Adavance!

1 个答案:

答案 0 :(得分:0)

我没有使用与你相同的库(我使用androidplot)但是我通过创建自己的类来实现这一点,该类扩展了库的绘图类并实现了OnTouchListener。我还在我的类中定义了一个slavePlot变量。第一个图是第二个图的奴隶,反之亦然。然后,当在一个图上进行操作时,您可以在另一个图上执行相同操作。

public class MyXYPlot extends XYPlot implements OnTouchListener {

private MyXYPlot slavePlot;

public MyXYPlot(Context context, AttributeSet attributes)
{
    super(context, attributes);
    this.setOnTouchListener(this);
}

public void setSlavePlot(MyXYPlot theplot)
{
    this.slavePlot = theplot;
}

 public boolean onTouch(View view, MotionEvent motionEvent) {
    switch(motionEvent.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN: //start gesture

            break;

        case MotionEvent.ACTION_POINTER_DOWN: //second finger

            break;

        case MotionEvent.ACTION_POINTER_UP: //end zoom

            break;

        case MotionEvent.ACTION_MOVE:

            break;
    } 
    return true;
}
}

希望这有帮助!