将Touch监听器保留在XML上?

时间:2012-11-11 21:28:45

标签: android surfaceview

我在背景中有一个XML布局,顶部有透明的SurfaceView,如何通过SurfaceView将触摸事件传递给XML?

这是我的onTouch()监听器:

    public boolean onTouch(View v, MotionEvent me) 
    {
        //x = me.getX();
        zoomController++;
        Log.d("Tat", String.valueOf(zoomController));
        //y = me.getY();

        try 
        {
            Thread.sleep(50);
        } catch (InterruptedException e) 
        {
            e.printStackTrace();
        }
        return true;
    }
}

2 个答案:

答案 0 :(得分:0)

您正在寻找OnInterceptTouchEvent
基本上,因为您在顶部有一个表面视图,并且您不希望它处理触摸事件,所以返回true以从子视图中获取事件。

    public class ParentContainer extends View {

    @SuppressWarnings("deprecation")
    public ParentContainer (Context context, AttributeSet attrs) {
        super(context, attrs);

    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return true;//parent gets the touch event
}

答案 1 :(得分:0)

好的,所以我所做的只是在我的onTouch()底部我返回false,它让我实际上在两个画布上工作:XML和SurfaceView!