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);

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM