Android 为View实现双击效果
Android 默认是没有双击事件的,不知道为什么~~.. 不多说,直接上代码。
首先增加一个双击事件接口:
public interface OnDoubleClickListener { public void OnSingleClick(View v); public void OnDoubleClick(View v); } |
然后再添加一个方法:
/** * 注册一个双击事件 * 改自网友的,增加 Handler 处理,如果不加这个,会引起线程安全之类错误。<br> */ public static void registerDoubleClickListener(View view, final OnDoubleClickListener listener){ if (listener== null ) return ; view.setOnClickListener( new View.OnClickListener() { private static final int DOUBLE_CLICK_TIME = 350 ; //双击间隔时间350毫秒 private boolean waitDouble = true ; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { listener.OnSingleClick((View)msg.obj); } }; //等待双击 public void onClick( final View v) { if (waitDouble){ waitDouble = false ; //与执行双击事件 new Thread(){ public void run() { try { Thread.sleep(DOUBLE_CLICK_TIME); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //等待双击时间,否则执行单击事件 if (!waitDouble){ //如果过了等待事件还是预执行双击状态,则视为单击 waitDouble = true ; Message msg = handler.obtainMessage(); msg.obj = v; handler.sendMessage(msg); } } }.start(); } else { waitDouble = true ; listener.OnDoubleClick(v); //执行双击 } } }); } |
最后注册事件:
ImageView imageview = (ImageView)findViewById(R.id.imageview1);registerDoubleClickListener(imageview, this ); |
分类:
Android 开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2007-12-28 ASP.NET 的数据库与缓存问题