阅读:4691回复:3

activity全屏或者只显示导航栏切换

楼主#
更多 发布于:2021-06-02 02:24
问题描述: 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。

最新喜欢:

zhaoyf13zhaoyf...
沙发#
发布于:2021-06-02 11:57
这样挺好的,UI就一个xml文件, 逻辑控制就一个java文件,简单粗暴
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
板凳#
发布于:2021-06-03 14:18
zhaoyf13:这样挺好的,UI就一个xml文件, 逻辑控制就一个java文件,简单粗暴回到原帖
噗,java文件里糅合了HDMI、解码、播放控制、UI控制等逻辑,一共6000多行。
if和for各种嵌套N层,比文言文还死脑细胞。
地板#
发布于:2021-06-17 00:03
这两天终于对恶心的AML VideoPlayer动刀了
首先,把次要功能删除:
单个java文件6K多行代码干掉无关代码还余3K多行
单个xml700多行,干掉无关代码后,还余170多行
后续:业务分离:把player的逻辑从activity剥离出来;
优化代码,那些for+if动不动就套7-8层,必须消灭;
xml过度绘制,减少layout的嵌套
游客

返回顶部