触摸事件学习系列文章详见:

《Android Touch事件学习系列汇总》



Touch事件在Android开发过程中会经常遇到,尤其在自定义UI控件的时候。之前也一直在学习和总结事件,学习事件传递机制、识别手势、拦截、分发等,也写了一些总结但是都感觉比较乱,没有形成系统没有一个头绪都是东一点西一点的,当然也查了很多资料看了一些书自定义了几个控件,在整理之前的总结的时候突然想到干脆从我接触Android事件到之后一点点发现和学习的过程来总结Android Touch 事件,这样自下而上的整理,可以系统的对学习到的相关知识进行整理查漏补遗,也能帮助自己发现是否还有认知上的错误。


以下先列举个人学习事件先后接触的知识:
1. 各种事件设置方法与接口(例如:setOnClickListener )
2. 各种事件原理(onTouchEvent 与方法传递的参数MotionEvent)
3. 各种手势(例如:滚动、Fling、轻触等)
4. 事件的分发(dispathTouchEVent)
5. 事件拦截(onInterceptTouchEvent)
6. 事件传递机制
。。。。。。



先来看看第一个接触的知识点把,其他的之后慢慢总结。最早写过Hello World之后,紧接着学习和实践的demo就是onClickListener,设置一个按钮点击之后会触发其中的代码,通常是弹出一个Toast或者打印一个LOG。下面先从一个简单的与Hello World同级别简单Demo的例子来开始事件的学习旅程。


一、点击事件例子

    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                View view = getWindow().findViewById(R.id.touch_one);        view.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "点击图片", Toast.LENGTH_SHORT).show();}});         }

很简单那的一个小demo代码也没有几行,先来看看下面的效果图:



调用View.setOnClickListener,之后传递一个View.OnClickListener的内部类,其中就一句弹出一个Toast显示文字“点击图片”。

从上面效果图上可以看出,只要点击中间的图片就会弹出“点击图片”文字,说明只要使用setOnClickListener当在视图上点击的时候,都会触发执行其内部类的代码。


二、View的事件整理

先学习了一个点击事件,接着查一下Andorid View都提供了哪些事件相关的方法,这些方法有一个规律都是以setOn开头,通过官网View类的文档或者在Eclipse等IDE中在View.setOn都是显示出以下方法

setOnClickListenersetOnLongClickListenersetOnTouchListenersetOnKeyListenersetOnFocusChangeListenersetOnCreateContextMenuListener

会发现有6个相关方法,其中第一个是当前例子中使用的setOnClickListener点击事件监听、setOnLongClickListener从名字上可以看出是长按事件的监听、setOnTouchListener是Touch 事件的监听,仅有这三个方法从名字上来说跟事件有关。


点击事件这个引子触发,之后再来分析下Android 源码是何时如何触发执行setOnClickListener内部类的,并且如何判断当前的操作点击行为?


下一篇文章《Touch事件学习 2 触发点击事件的地方》,从Andorid源码角度查找何处触发执行的点击事件。




更多相关文章

  1. Android基于监听的事件处理
  2. Back Stack学习之Android退出方法小结
  3. Android学习随笔之使用限定符
  4. ReactNative学习笔记之调用原生模块(进阶)之Callback、Promise使用
  5. Android(安卓)学习笔记(9)—— ListView
  6. Android学习之路之ListView的使用
  7. 跟Google学习Android开发-起始篇-保存数据(1)
  8. android开发学习如何一体化?从入门到高端开发的路如何走?
  9. Android中使用ListView以及在Listview中添加CheckBox时若干问题

随机推荐

  1. Android捕获全局异常
  2. Eclipse中使用Ant打Android包报错及解决
  3. Android(安卓)SimpleAdapter自定义布局显
  4. 大话企业级Android应用开发实战 文件下载
  5. android音频、视频、拍照基础操作
  6. Android(安卓)RecyclerView左划删除和长
  7. Android(安卓)providers 解析之telephony
  8. 解析Android消息处理机制:Handler/Thread/
  9. Android(安卓)属性系统 详解
  10. Android如何获取SIM卡信息