Android 事件触发机制的深入学习

最近在研究android的事件触发和传播机制,说来很惭愧,web下的事件太熟悉不过了,可在android中却很郁闷,常用的触摸事件都糊里糊涂的,在网上看了半天,也整理一份,供大家参考:
public class CustomDefaultActivity implements OnTouchListener {
private GestureDetector gd1;
private TableLayout tableLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_default);
tableLayout = (TableLayout) findViewById(R.id.tableLayout);
gd1 = new GestureDetector(CustomDefaultActivity.this, new MyGesture());
tableLayout.setOnTouchListener(this);
tableLayout.setLongClickable(true);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
Log.e("-----------------------------------------------------------------------",
"dispatchTouchEvent");
if (gd1.onTouchEvent(event)) {
event.setAction(MotionEvent.ACTION_CANCEL);
}
return super.dispatchTouchEvent(event);
}
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
Log.e("-------", "onTouch");
return gd1.onTouchEvent(arg1);
}
public class MyGesture implements OnGestureListener {
@Override
public boolean onDown(MotionEvent arg0) {
Log.e("-------",
"onDown, 按下时触发[" + arg0.getX() + "," + arg0.getY() + "]");
return true;
}
@Override
public void onLongPress(MotionEvent arg0) {
Log.e("-------", "onLongPress,长时间按住时触发");
}
@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
Log.e("-------",
"onScroll,滑动拖动事件[" + arg0.getX() + "," + arg0.getY() + "]=[" +
arg1.getX() + "," + arg1.getY() + "]");
return true;
}
@Override
public boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
Log.e("-------", "onFling, 滑动甩出事件");
return true;
}
@Override
public void onShowPress(MotionEvent arg0) {
Log.e("-------", "onShowPress,down事件发生,而move或up还没发生前触发该事件");
}
@Override
public boolean onSingleTapUp(MotionEvent arg0) {
Log.e("-------", "onSingleTapUp 释放事件");
return true;
}
}
}
监控触摸事件,主要是实现OnGestureListener类,并重写其中的几个方法,以监听事件发生。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 事件触发机制学习
# 触发机制
# Android onSaveInstanceState和onRestoreInstanceStat
# Android onNewIntent()触发机制及注意事项
# android防止提交事件时触发多个表单中的按钮
# Android实现指定时间定时触发方法
# 几个
# 还没
# 看了
# 过了
# 长时间
# 半天
# 希望能
# 可在
# 糊里糊涂
# 重写
# 拖动
# 按下
# 谢谢大家
# 生前
# 中却
# 很郁闷
# 主要是
# 甩出
# 在网上
# tableLayout
相关文章:
如何快速搭建虚拟主机网站?新手必看指南
如何用花生壳三步快速搭建专属网站?
如何正确下载安装西数主机建站助手?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
如何制作一个表白网站视频,关于勇敢表白的小标题?
威客平台建站流程解析:高效搭建教程与设计优化方案
建站主机解析:虚拟主机配置与服务器选择指南
如何通过商城自助建站源码实现零基础高效建站?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
公司门户网站制作流程,华为官网怎么做?
如何通过老薛主机一键快速建站?
建站之星代理平台如何选择最佳方案?
中山网站制作网页,中山新生登记系统登记流程?
如何快速搭建高效简练网站?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
宝塔面板如何快速创建新站点?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
详解jQuery停止动画——stop()方法的使用
北京的网站制作公司有哪些,哪个视频网站最好?
如何在Ubuntu系统下快速搭建WordPress个人网站?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
清除minerd进程的简单方法
建站之星导航如何优化提升用户体验?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何选择CMS系统实现快速建站与SEO优化?
如何选择建站程序?包含哪些必备功能与类型?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星价格显示格式升级,你的预算足够吗?
制作网页的网站有哪些,电脑上怎么做网页?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
jQuery 常见小例汇总
建站主机选购指南:核心配置优化与品牌推荐方案
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
制作营销网站公司,淘特是干什么用的?
建站之星客服服务时间及联系方式如何?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
如何解决VPS建站LNMP环境配置常见问题?
如何在腾讯云服务器上快速搭建个人网站?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
定制建站哪家更专业可靠?推荐榜单揭晓
C#如何使用XPathNavigator高效查询XML
如何通过服务器快速搭建网站?完整步骤解析
建站之星如何通过成品分离优化网站效率?
建站之星在线客服如何快速接入解答?
如何在建站主机中优化服务器配置?
深圳网站制作案例,网页的相关名词有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。