Android TouchListener

上一章节中我们学习了 基于监听 的事件处理机制,本章节我们用一个范例来巩固下知识,顺便学习下基于事件监听机制的 TouchListener

OnTouchListener 相关方法与属性

方法只有一个

onTouch(View v, MotionEvent event)

参数说明

参数 说明
v 触发触摸事件的 UI 控件
event 触碰事件 event,封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息,比如 event.getX(),event.getY()

我们也可以对触摸的动作类型进行判断,使用 event.getAction() 再进行判断

event.getAction() == MotionEvent.ACTION_DOWN // 按下事件 
event.getAction() == MotionEvent.ACTION_MOVE // 移动事件 
event.getAction() == MotionEvent.ACTION_UP   // 弹起事件 

范例

简单的一个 ImageView 然后 setOnTouchListener,重写 onTouch() 方法即可

  1. 创建一个 空的 Android 项目 cn.twle.android.TouchListener

  2. 下载 /static/i/meimei.jpg 并放到 res/drawable 目录

  3. 修改 activity_main.xml 添加一个 ImageView

    <?xml version="1.0" encoding="utf-8" ?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        xmlns:tools="http://schemas.android.com/tools" 
        android:gravity="center" 
        android:layout_width="match_parent"  
        android:layout_height="match_parent" >
    
        <ImageView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content" 
            android:src="@drawable/meimei" 
            android:id="@+id/meimei" />  
    </RelativeLayout>
    
  4. 修改 MainActivity.javaImageView 添加 TouchListener 事件

    package cn.twle.android.touchlistener;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import android.widget.ImageView;
    import android.widget.Toast;
    
    import android.view.View;
    import android.view.MotionEvent;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);
    
            ImageView meimei = (ImageView)findViewById(R.id.meimei);
    
            meimei.setOnTouchListener(new View.OnTouchListener() {  
                @Override  
                public boolean onTouch(View v, MotionEvent event) {  
                    Toast.makeText(MainActivity.this,"你通过监听器模式:OnTouchListener 摸了洒家~",Toast.LENGTH_LONG).show();
    
                    return true;  
                }  
            });  
        }  
    }
    

参考文档

  1. Android android.view.MotionEvent

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.