补第14天 Touch事件学习 1 点击事件



    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() {
			
			@Override
			public void onClick(View v) {
				Toast.makeText(MainActivity.this, "点击图片", Toast.LENGTH_SHORT).show();
			}
		});
     
    }

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

补第14天 Touch事件学习 1 点击事件


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

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


二、View的事件整理

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

setOnClickListener
setOnLongClickListener
setOnTouchListener

setOnKeyListener
setOnFocusChangeListener
setOnCreateContextMenuListener

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


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

    


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




补第14天 Touch事件学习 1 点击事件

上一篇:USACO Number Triangles


下一篇:题目1181:遍历链表