android长按事件监听,OnLongClickListener的长按结束监听事件
本人在做一个录音项目的时候,要求一个button要做到三种功能:长按开始录音,手指起来的时候停止录音,点击的时候要播放录音,一开始真的是没有头绪,如果使用OnTouchListener来做,虽然可以使用时间延迟来模仿长按事件,也可以做到长按结束的监听,但是后面还要做到点击的时候播放,后来看了别人写的一些博客关于OnTouchListener、OnLongClickListener、OnClickL
本人在做一个录音项目的时候,要求一个button要做到三种功能:长按开始录音,手指起来的时候停止录音,点击的时候要播放录音,一开始真的是没有头绪,如果使用OnTouchListener来做,虽然可以使用时间延迟来模仿长按事件,也可以做到长按结束的监听,但是后面还要做到点击的时候播放,后来看了别人写的一些博客关于OnTouchListener、OnLongClickListener、OnClickListener三个事件的触发顺序,因此也开始尝试着写了一下,验证一些执行的顺序。后来真的成功了。
我的做法是OnLongClickListener实现长按开始录音,当结束的时候OnTouchListener的ACTION_UP来实现监听,用OnClickListener来实现点击播放的功能。代码如下:
//长按事件,进行录音
record.setOnLongClickListener(new
View.OnLongClickListener() {
@Override
public boolean onLongClick(View v)
{
//实现录音的代码
}
}
//点击事件,播放录音
record.setOnClickListener(new
View.OnClickListener() {
@Override
public
void onClick(View v) {
//播放录音的代码
}
}
//触摸事件,结束录音
record.setOnTouchListener(new
View.OnTouchListener() {
@Override
public
boolean onTouch(View v, MotionEvent event) {
if (event.getAction() ==
MotionEvent.ACTION_UP &isRecord)
{
//结束录音的代码,isRecord是一个boolean,用于判断是否在录音
}
}
}
第一次写博客,只是个人总结,上面的具体录音等的实现代码网上都找得到,由于代码直接复制很乱就不浪费篇幅了,不然看着眼晕。
更多推荐
所有评论(0)