Android中实现按钮自动隐藏

//触摸显示悬浮的按钮
@Override
public boolean onTouch(View v, MotionEvent event) {
    if(!zoomControls.isShown()) {
        //用一个定时器定时
        final Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                Message message = new Message();
                message.what = 1;
                handler.sendMessage(message);
            }
            Handler handler = new Handler() {
                public void handleMessage(Message msg) {
                    switch(msg.what) {
                    case 1:
                        if(zoomControls.isShown()) {
                            showView(false);
                            if(timer != null) {
                                //取消Timer
                                timer.cancel();
                            }
                        }
                        break;
                    }
                    super.handleMessage(msg);
                }
            };
        };
        showView(true);
        //以后每3秒,执行一次task
        timer.schedule(task, 3000);
        return false;
    }
    return false;
}
//控制悬浮按钮的显示或消失
public void showView(Boolean boo) {
    if(boo) {
        zoomControls.show();
    }else {
        zoomControls.hide();
    }
}

其实原理也不难,就是用一个Timer定时器定时,TimerTask中用一个线程判断和管理是否显示,通过

Handler发送显示或隐藏的消息。

于是我的ZoomControls也实现了自动隐藏功能:

转载于:https://www.cnblogs.com/jiezzy/archive/2012/05/10/2495146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值