【问题标题】:Pinch Zoom and onClickListener for same layout not working in Android捏缩放和 onClickListener 相同的布局在 Android 中不起作用
【发布时间】:2015-08-25 13:23:49
【问题描述】:
我尝试根据以下链接在 Android 中实现 PinchZoom 自定义布局。
https://gist.github.com/anorth/9845602
同时为同一个Layout实现了onClickListener。但是,当我单击布局中的特定位置时,它无法正常工作,在 OnClick 功能之后,Pinch Zoom 无法正常工作。其他明智的工作正常。
如何解决?
任何人的建议将不胜感激。
【问题讨论】:
标签:
android
onclicklistener
pinchzoom
【解决方案1】:
试试这个可能对你有帮助
无需设置 onClick() 方法 onTouch() 将处理这两种情况。
包 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;
}
}
}