GestureDetector怎么不起作用啊?

k_c_u_f 2013-08-25 07:55:51
package com.hzhi.mouse_mb;

import java.text.DecimalFormat;

import android.os.Bundle;
...

public class MainActivity extends Activity{

...

// GestureDetector
public static GestureDetector gd;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ctx = getApplicationContext();
// 获取SharedPreferences对象
sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
editor = sp.edit();
read_ip();

// 获得控件
get_con();

gd = new GestureDetector(ctx, new Mouse_GestureListener());

}
...

}

class Mouse_GestureListener extends GestureDetector.SimpleOnGestureListener{
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {

MainActivity.dis_x = e2.getX()-e1.getX();
MainActivity.dis_y = e2.getY()-e1.getY();
Log.i("**********************************", "onFling");
// 移动距离是否足够
if ((float)Math.pow((Math.pow(MainActivity.dis_x,2)+Math.pow(MainActivity.dis_y,2)),0.5)>MainActivity.dis_t){

MainActivity.dis_x *= MainActivity.move_times;
MainActivity.dis_y *= MainActivity.move_times;
MainActivity.send_thread.set_str(MainActivity.df.format(MainActivity.dis_x)+"/"+MainActivity.df.format(MainActivity.dis_y));

}

return false;

}
}

以上是代码,按理说手指在屏幕上移动时,应该Log.i("**********************************", "onFling");的,但是却没有反应,在public boolean onFling()中设置断点也根本执行不到断点去,说明根本就没有运行onFling(),这是怎么回事啊?
...全文
268 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Utopia 2013-08-26
  • 打赏
  • 举报
回复
重写ontouch方法 return mGestureDetector.onTouchEvent(event);
bnzx 2013-08-26
  • 打赏
  • 举报
回复
1.重写ontouch方法 return gd.onTouchEvent(event); 2.如果有按钮,public boolean dispatchTouchEvent(MotionEvent ev) { gd.onTouchEvent(ev); return super.dispatchTouchEvent(ev); }

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧