项目中需要实现长按view多次一直触发点击事件,直到手指抬起;
开始是在业务层实现这些功能的,做完发觉是否可以自定义控件的形式,与业务分离,就写了个控件,简单重构了代码
import android.content.Context; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; /** * 该控件用以实现长按触发多次点击事件的效果 * * @author Sanji.Shen * */ public class LongClickImageView extends ImageView { /** * 长按事件触发频率 */ private long mDelayMillis = 100; private boolean isMotionEventUp = true; public LongClickImageView(Context context, AttributeSet attrs) { super(context, attrs); intiListener(); } public LongClickImageView(Context context) { super(context); intiListener(); } public LongClickImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); intiListener(); } public void intiListener() { this.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { isMotionEventUp = false; mHandler.sendEmptyMessage(0); return false; } }); this.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { isMotionEventUp = true; } return false; } }); } /** * 用以处理click事件 */ Handler mHandler = new Handler(Looper.getMainLooper()) { public void handleMessage(android.os.Message msg) { if (!isMotionEventUp && isEnabled()) { // 调用click事件 performClick(); mHandler.sendEmptyMessageDelayed(0, mDelayMillis); } }; }; /** * 设置触发时间间隔 * * @param delayMillis */ public void setmDelayMillis(long delayMillis) { this.mDelayMillis = delayMillis; } }
相关推荐
《Android自定义控件开发入门与实战》高清影印版,带目录,拒绝压缩包加密坑钱,内容深入浅出,对于有Android自定义开发需求的非常有帮助
Android自定义控件开发入门与实战从自定义基础到实战的讲解。一步步深入。适合有一定Android基础的读者。本压缩包中自带了推荐的pdf阅读器。大家要是喜欢这本文档,推荐去京东,天猫,当当买支持一下默默付出的作者...
Android 自定义控件简单Demo 图片+文字
Android自定义控件示例,基于Android studio 1.0.2。
【Android进阶】(1)用继承和组合方式自定义控件 相关工程。
Android 组合控件,用自定义方式实现,非简单重写adapter。同时包含了点击事件的响应。
1 本书从动画、绘图、视图三方面介绍Android自定义控件相关知识,内容系统全面,并配以翔实的案例。 2 Android自定义控件涉及动画和色彩,本书将图片地址制作成二维码,可供读者扫描观看。 3 本书适合初高级水平从业...
教程名称: 尚硅谷Android视频教程《自定义控件》Android自定义控件,是中高级程序员必须熟练掌握的技术之一。本套视频涵盖了安卓自定义开发过程中所有的技术问题,课程中讲授的例子全部来源于企业。学习本套视频后...
android 自定义控件 小球的圆周运动 canvas绘出
Android自定义控件——圆形进度条 代码中有非常详细的注释,如果有问题可以到http://blog.csdn.net/a253664942/article/details/45115407上留言
很简单的android自定义控件,继承LinearLayout,适合初学者,相互学习
Android自定义控件步骤总结 http://www.cnblogs.com/duanxz/p/3625589.html
Android自定义控件详细开发教程
Android自定义控件源码.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
一个按钮同时实现点击和长按事件,有时候会有冲突,我们针对这一现象来自定义按钮来区分点击和长按事件 1.xml中 <LinearLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=...
详细讲解自定义控件文章的配套代码!文章地址:http://blog.csdn.net/dinglin_87/article/details/7431545
Android自定义控件之滑动开关 Android自定义控件之滑动开关 http://blog.csdn.net/eeeduo/article/details/37606567
android自定义控件CircleImageVIew的使用举例
一个很好看的Android自定义拖动条控件
android自定义控件