阅读:4691回复:3
activity全屏或者只显示导航栏切换
问题描述: amlogic的videoplayer在播放界面显示或者隐藏导航栏时decoreview会上下偏移
问题分析: 切换导航栏状态使用的接口不正确,状态栏显示时并不是一个全屏的activity. 修改如下: private void showSystemUi (boolean visible) { if (mSurfaceView == null) { return; } int flag = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; //show nav bar if (!visible) {//hide nav bar flag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; } mSurfaceView.setSystemUiVisibility (flag); } 遗留问题:弹出系统dialog时(比如音量调节的进度条,关机的global dialog...),仍然会有小幅抖动,日后有空再分析。 不得不吐槽一下这个app代码,所有UI写到一个xml里,player逻辑全部堆在一个java里,居然还找不到逻辑上的bug。 |
|
最新喜欢:zhaoyf... |
沙发#
发布于:2021-06-02 11:57
这样挺好的,UI就一个xml文件, 逻辑控制就一个java文件,简单粗暴
|
|
|
板凳#
发布于:2021-06-03 14:18
|
|
地板#
发布于:2021-06-17 00:03
这两天终于对恶心的AML VideoPlayer动刀了
首先,把次要功能删除: 单个java文件6K多行代码干掉无关代码还余3K多行 单个xml700多行,干掉无关代码后,还余170多行 后续:业务分离:把player的逻辑从activity剥离出来; 优化代码,那些for+if动不动就套7-8层,必须消灭; xml过度绘制,减少layout的嵌套 |
|