Pinch Zoom和onClickListener在Android中无法使用相同的布局

时间:2015-08-25 04:52:42

标签: android onclicklistener pinchzoom

我已尝试根据以下链接在Android中实施PinchZoom自定义布局。

https://gist.github.com/anorth/9845602

同时为同一个Layout实现onClickListener。但是,当我点击布局中的特定位置时,它无法正常工作,在OnClick功能后,Pinch Zoom无法正常工作。其他明智的工作正常。

如何解决这个问题?

任何人的建议都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

试试这可能会对你有所帮助

无需设置onClick()方法onTouch()将处理这两种情况。

package com.example.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageButton;

public class MainActivity extends Activity {
    private GestureDetector gestureDetector;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gestureDetector = new GestureDetector(this, new SingleTapConfirm());
        ImageButton imageButton = (ImageButton) findViewById(R.id.img);

        imageButton.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {

                if (gestureDetector.onTouchEvent(arg1)) {
                    // single tap
                    return true;
                } else {
                    // your code for move and drag
                }

                return false;
            }
        });

    }

    private class SingleTapConfirm extends SimpleOnGestureListener {

        @Override
        public boolean onSingleTapConfirmed(MotionEvent event) {
            return true;
        }
    }

}