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
相关文章:
建站之星后台管理系统如何操作?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
python的本地网站制作,如何创建本地站点?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
如何自定义建站之星模板颜色并下载新样式?
如何用免费手机建站系统零基础打造专业网站?
如何选择建站程序?包含哪些必备功能与类型?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
宝塔新建站点报错如何解决?
如何快速搭建高效可靠的建站解决方案?
南京网站制作费用,南京远驱官方网站?
高端建站三要素:定制模板、企业官网与响应式设计优化
香港服务器部署网站为何提示未备案?
h5在线制作网站电脑版下载,h5网页制作软件?
如何通过FTP空间快速搭建安全高效网站?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
建站之星如何取消后台验证码生成?
如何快速登录WAP自助建站平台?
网站制作免费,什么网站能看正片电影?
韩国服务器如何优化跨境访问实现高效连接?
如何高效搭建专业期货交易平台网站?
如何通过网站建站时间优化SEO与用户体验?
Swift中循环语句中的转移语句 break 和 continue
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
网站制作软件有哪些,制图软件有哪些?
如何零成本快速生成个人自助网站?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
C#怎么使用委托和事件 C# delegate与event编程方法
c# 在高并发下使用反射发射(Reflection.Emit)的性能
音乐网站服务器如何优化API响应速度?
深圳网站制作平台,深圳市做网站好的公司有哪些?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
常州自助建站工具推荐:低成本搭建与模板选择技巧
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
高端云建站费用究竟需要多少预算?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
文字头像制作网站推荐软件,醒图能自动配文字吗?
大型企业网站制作流程,做网站需要注册公司吗?
如何做网站制作流程,*游戏网站怎么搭建?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
如何通过服务器快速搭建网站?完整步骤解析
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
制作网站的模板软件,网站怎么建设?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
微信推文制作网站有哪些,怎么做微信推文,急?
*请认真填写需求信息,我们会在24小时内与您取得联系。