
android开发 GestureDetector.OnGestureListener 的 onScroll()方法 为何无法监听到imageview控件的滑动?
packagewangman.onTouchListener;importandroid.app.Activity;importandroid.os.Bundle;imp...
package wangman.onTouchListener;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class onTouchListenerActivity extends Activity {
/** Called when the activity is first created. */
//private Button Button1;
private GestureDetector mGestureDetector = new GestureDetector(new myOnGestureListener());
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Button Button1 = null;
findView();
}
private void findView()
{
ImageView imageView;
imageView = (ImageView)findViewById(R.id.imageView);
imageView.setOnTouchListener(myOnTouchListener);
}
OnTouchListener myOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return mGestureDetector.onTouchEvent(event);
}
};
class myOnGestureListener implements OnGestureListener{
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onDown");
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
System.out.println("onFling");
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onLongPress");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
System.out.println("onScroll");
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onShowPress");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onSingleTapUp");
return false;
}
}
}
运行程序 用鼠标在ImageView控件上滑动 LogCat中只能显示出onDown onShowPress 和onLongPress 而其他的却不显示 ,我明明是在控件上滑动了啊 为什么相应的callback函数不运行??请高手解答!小弟万分感激!!! 展开
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class onTouchListenerActivity extends Activity {
/** Called when the activity is first created. */
//private Button Button1;
private GestureDetector mGestureDetector = new GestureDetector(new myOnGestureListener());
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Button Button1 = null;
findView();
}
private void findView()
{
ImageView imageView;
imageView = (ImageView)findViewById(R.id.imageView);
imageView.setOnTouchListener(myOnTouchListener);
}
OnTouchListener myOnTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return mGestureDetector.onTouchEvent(event);
}
};
class myOnGestureListener implements OnGestureListener{
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onDown");
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
System.out.println("onFling");
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onLongPress");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
// TODO Auto-generated method stub
System.out.println("onScroll");
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onShowPress");
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
System.out.println("onSingleTapUp");
return false;
}
}
}
运行程序 用鼠标在ImageView控件上滑动 LogCat中只能显示出onDown onShowPress 和onLongPress 而其他的却不显示 ,我明明是在控件上滑动了啊 为什么相应的callback函数不运行??请高手解答!小弟万分感激!!! 展开
1个回答
展开全部
如果你要识别负责手势操作,应该继承的是GestureDetector.SimpleOnGestureListener
SimpleOnGestureListener 是GestureDetector 内部类
SimpleOnGestureListener 是GestureDetector 内部类
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询