Android事件处理--显示持续触摸时间

实验六 事件处理

实验要求

  1. 掌握基于监听的事件处理机制,根据需求能够编写相应的事件处理程序。
  2. 能够熟练应用各种布局管理器和控件进行界面设计

环境

  1. 部署有Android Studio和Android SDK的主机;
  2. 建议在机房的HelloWorld例子上完成。

效果展示

在这里插入图片描述
在这里插入图片描述

代码展示

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {
        private ImageView myImageView;
        private EditText edt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        edt = findViewById(R.id.edt1);
        myImageView=this.findViewById(R.id.imv1);
        myImageView.setEnabled(true);

        myImageView.setOnTouchListener(new myOnTouchListener() );
    }
private  class myOnTouchListener implements View.OnTouchListener{
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
    //如果不按压为0,按压松开之后显示时间
    long time = motionEvent.getEventTime()-motionEvent.getDownTime();
    //如果直接传int型,setText会报错,在这里用转换成String类型
    edt.setText(Integer.toString((int)time));
    return true;
    }
}

}

MotionEvent类

ACTION_DOWN: 表示用户开始触摸(在第一个点被按下时触发)
ACTION_MOVE: 当有点在屏幕上移动时触发,注意的是,由于灵敏度很高,所以基本上只要有点在屏幕上,此事件就会不停地被触发
ACTION_UP:表示用户抬起了手指(当屏幕上唯一的点被放开时触发)
ACTION_OUTSIDE: 表示用户触碰超出了正常的UI边界
ACTION_POINTER_UP:当屏幕上有多个点被按住,松开其中一个点时触发(非最后一个点)
getDownTime() //按下开始时间
getEvenTime()//事件结束时间
GetDownTime()-getEvenTime()//总共按下的时间

其他用法

自行搜索

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值