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/p/2495146.html