android播放器隐藏控件,自动隐藏android中的媒体播放器布局

我正在设计一个自定义布局的媒体播放器。 我希望界面在16秒不活动后消失。 如果用户触摸屏幕,它应该重新出现。 代码段如下:

public void showhideControllers(int n) { if (n == 1) { /* make layout invisible */ Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { volumeBar.setVisibility(View.INVISIBLE); audioControllView.setVisibility(View.INVISIBLE); topBar.setVisibility(View.INVISIBLE); } }, 16000); } else { /* make layout visible */ volumeBar.setVisibility(View.VISIBLE); topBar.setVisibility(View.VISIBLE); audioControllView.setVisibility(View.VISIBLE); showhideControllers(1); } } @Override public void onUserInteraction() { super.onUserInteraction(); showhideControllers(2); }

在onCreate()中,我通过调用showhideControllers(1);来启动计时器。 现在,当我点击屏幕时,布局重新出现并重置计时器。 但是,如果我随机点击屏幕,则每次点击后计时器都不会重置,并且布局会在16秒后消失。 你能告诉我我做错了什么吗?

抱歉迟了回应。 但这是解决方案。 我有类似的问题。 所以我在您的代码中进行了以下更改,请尝试此操作并告诉我它是否对您有所帮助。

private Runnable hideControllerThread = new Runnable() { public void run() { volumeBar.setVisibility(View.GONE); audioControllView.setVisibility(View.GONE); topBar.setVisibility(View.GONE); } }; public void hideControllers() { hidehandler.postDelayed(hideControllerThread, 15000); } public void showControllers() { volumeBar.setVisibility(View.VISIBLE); topBar.setVisibility(View.VISIBLE); audioControllView.setVisibility(View.VISIBLE); hidehandler.removeCallbacks(hideControllerThread); hideControllers(); } @Override public void onUserInteraction() { super.onUserInteraction(); if (audioControllView.getVisibility() == View.VISIBLE) { hidehandler.removeCallbacks(hideControllerThread); hideControllers(); } else { showControllers(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值