永发信息网

android 如何监听屏幕当前是否全屏?

答案:3  悬赏:30  手机版
解决时间 2021-03-06 10:18
  • 提问者网友:做自己de王妃
  • 2021-03-05 19:14
在我的应用程序中,我要想监听到屏幕是否是全屏,系统进行全屏切换时会发什么广播?
在我的程序中不知道为什么,无法使用View.setOnSystemUiVisibilityChangeListener进行监听,因为我是一个WindowsManager下的Window,type为LayoutParams.TYPE_PHONE
最佳答案
  • 五星知识达人网友:佘樂
  • 2021-03-05 20:04
可以在屏幕的Activity加监听屏幕属性改变,发生改变则检查当前是否全屏状态。
是全屏状态发送,全屏的广播消息,到监听应用触发操作。
@Override
public void onWindowAttributesChanged(LayoutParams params) {
// TODO Auto-generated method stub
super.onWindowAttributesChanged(params);
Log.e(TAG,"onWindowAttributesChanged()"+getWindow().getAttributes().flags);
if (WindowManager.LayoutParams.FLAG_FULLSCREEN == getWindow().getAttributes().flags) {
Log.e(TAG,"onWindowAttributesChanged() FLAG_FULLSCREEN");
}
}
(注意该判断在屏幕切换横竖屏是也会触发,需要根据实际情况过滤横竖屏切换的情况。)
全部回答
  • 1楼网友:执傲
  • 2021-03-05 20:29
android判断屏幕有没有触碰,可以通过ontouch事件来判断。当用户触摸了屏幕就会执行ontouch事件。 1. 在activity中重写ontouchevent方法。 2. 在public boolean ontouchevent(android.view.motionevent event) 中用变量记录即可。 3. boolean istouch = true;即可判断出用户是否触摸过屏幕了。
  • 2楼网友:怀裏藏嬌
  • 2021-03-05 20:09
//设置全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯