• 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/
  • 相关阅读:
    orale 命令行创建&删除数据库
    Oracle 之表分析
    电子商务分销历程
    乐宝分销,人人都是老板
    随手将TPaxScripter 3.0改成了支持Delphi 2009,Delphi 2010,Delphi Xe
    百丽强势布局B2C,20亿铺路改变其销售格局
    顺丰开通B2C商城,快递业欲抢多一寸电商蛋糕
    Exchange环境搭建心得
    c# 添加外部程序集相对引用问题
    Entity Framework Code First 学习
  • 原文地址:https://www.cnblogs.com/lyout/p/2304758.html
Copyright © 2020-2023  润新知