0

我在后台有一个 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;
    }
}
4

2 回答 2

0

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

于 2012-11-11T22:38:38.027 回答
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
}
于 2012-11-11T21:38:58.247 回答