最近要实现一个长按录音,松开手指结束录音的功能,在项目中,弄来弄去绕晕了,写个demo来梳理下。顺便研究下android事件调用机制。
先上效果界面:
布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn"
android:layout_centerInParent="true"
android:background="@drawable/microp_btn_normal" />
</RelativeLayout>
代码:
package com.example.androidtest;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View

这篇博客探讨了在Android中如何处理onTouch、onLongClick和onClick事件,特别是在ScrollView中遇到的事件冲突问题。通过示例代码和实验,作者展示了事件的调用顺序,并解释了返回值如何影响事件的传递。当在ScrollView内进行长按录音功能时,由于滑动事件冲突,ACTION_UP可能不被触发。通过添加防冲突代码,可以避免这个问题。解决方案是在onLongClick中开始录音,并在ACTION_UP时停止,以实现预期功能。
1813

被折叠的 条评论
为什么被折叠?



