zoukankan      html  css  js  c++  java
  • Android 为View实现双击效果

    Android 默认是没有双击事件的,不知道为什么~~..  不多说,直接上代码。

    首先增加一个双击事件接口:

    public interface OnDoubleClickListener {
    	public void OnSingleClick(View v);
    	public void OnDoubleClick(View v);
    }
    
     

    然后再添加一个方法:

        
        /**
         * 注册一个双击事件
         * 改自网友的,增加  Handler  处理,如果不加这个,会引起线程安全之类错误。
    */ 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);
    

      

      

    版权声明 作者:夏荣全
    网站:http://www.lyout.com 邮箱:lyout(at)163.com
    扣扣:249775085
    本文版权归作者所有,转载请注明出处:http://www.cnblogs.com/lyout/
  • 相关阅读:
    HDU1879 kruscal 继续畅通工程
    poj1094 拓扑 Sorting It All Out
    (转)搞ACM的你伤不起
    (转)女生应该找一个玩ACM的男生
    poj3259 bellman——ford Wormholes解绝负权问题
    poj2253 最短路 floyd Frogger
    Leetcode 42. Trapping Rain Water
    Leetcode 41. First Missing Positive
    Leetcode 4. Median of Two Sorted Arrays(二分)
    Codeforces:Good Bye 2018(题解)
  • 原文地址:https://www.cnblogs.com/lyout/p/2304758.html
Copyright © 2011-2022 走看看