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

上にサーフェスビューがあり、タッチイベントを処理したくないので、基本的に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 に答える
0

さて、私が行ったことは、一番下の onTouch() だけで、false を返しました。これにより、XML と SurfaceView の両方のキャンバスで実際に作業できるようになりました。

于 2012-11-11T22:38:38.027 に答える