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


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

《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() {
			
			@Override
			public 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都是显示出以下方法

setOnClickListener
setOnLongClickListener
setOnTouchListener

setOnKeyListener
setOnFocusChangeListener
setOnCreateContextMenuListener

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


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

    


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




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值