文档章节

a20隐藏底部按钮及隐藏状态栏和虚拟按键栏

吃草小蚁
 吃草小蚁
发布于 2013/12/11 18:09
字数 389
阅读 424
收藏 0

隐藏RecentButton按钮:

在源码android4.2/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java的makeStatusBarView()方法中添加(这是全志android4.2.2版本(SDK1.3)的路径)

{Z:\A20_V3.0.1\android\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java这是全志android4.2.2版本(SDK3.0)的路径}

mRecentButton.setVisibility(View.GONE);

代码位置(makeStatusBarView()方法中):

        // The navigation buttons
        mBackButton = (ImageView)sb.findViewById(R.id.back);
        mNavigationArea = (ViewGroup) sb.findViewById(R.id.navigationArea);
        mHomeButton = mNavigationArea.findViewById(R.id.home);
        mMenuButton = mNavigationArea.findViewById(R.id.menu);
        mVolumeDownButton = mNavigationArea.findViewById(R.id.volume_down);
        mVolumeUpButton = mNavigationArea.findViewById(R.id.volume_up);
        mRecentButton = mNavigationArea.findViewById(R.id.recent_apps);
        mRecentButton.setOnClickListener(mOnClickListener);
                mRecentButton.setVisibility(View.GONE);//wangjian
        
        mScreenShotButton = mNavigationArea.findViewById(R.id.screenshot);
        mScreenShotButton.setOnClickListener(mOnClickListener);
        
        LayoutTransition lt = new LayoutTransition();
        lt.setDuration(250);

我没有验证留下一下代码的可行性,为了保险我屏蔽了setNavigationVisibility(int visibility)方法中的

mRecentButton.setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE);

这段代码,位置如下(橘色部分):


    private void setNavigationVisibility(int visibility) {
        boolean disableHome = ((visibility & StatusBarManager.DISABLE_HOME) != 0);
        boolean disableRecent = ((visibility & StatusBarManager.DISABLE_RECENT) != 0);
        boolean disableBack = ((visibility & StatusBarManager.DISABLE_BACK) != 0);

        
        boolean disableVolumeUp = (visibility != 0);
        boolean disableVolumeDown = (visibility != 0);
        
        mBackButton.setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE);
        mHomeButton.setVisibility(disableHome ? View.INVISIBLE : View.VISIBLE);
        //mRecentButton.setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE);


        
        if(mContext.getResources().getBoolean(R.bool.hasVolumeButton))
        {
            mVolumeUpButton.setVisibility(disableVolumeUp ? View.INVISIBLE : View.VISIBLE);
            mVolumeDownButton.setVisibility(disableVolumeDown ? View.INVISIBLE : View.VISIBLE);
        }

这样就可隐藏RecentButton,隐藏MenuButton,screenshot按钮方法如下:

在源码android4.2/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java中

将所有         menu.setVisibility(View.VISIBLE);
                screenshot.setVisibility(View.VISIBLE);两个设置改为

                menu.setVisibility(View.GONE);
                screenshot.setVisibility(View.GONE);

这个方法比较蠢,但管用!可以试试!

如果要彻底隐藏状态栏和底部虚拟按键可以在

android\frameworks\base\core\res\res\values\dimens.xml中将status_bar_height、navigation_bar_height、navigation_bar_height_landscape这三个值改为0即可,如下:

    <dimen name="status_bar_height">0dip</dimen>

    <!-- Height of the bottom navigation / system bar. -->

    <dimen name="navigation_bar_height">0dp</dimen>

    <!-- Height of the bottom navigation bar in portrait; often the same as @dimen/navigation_bar_height -->

    <dimen name="navigation_bar_height_landscape">0dp</dimen>

如图

© 著作权归作者所有

共有 人打赏支持
吃草小蚁
粉丝 15
博文 63
码字总数 110019
作品 0
深圳
高级程序员
如何适配Android底部虚拟按键

前言 本文章只做一个记录,一个备忘,也为了更好的帮助他人,文章参考地址:Android适配底部虚拟按键的方法 问题说明 项目进行中需要透明渐变的状态栏,全屏显示,当然透明渐变好弄,方法有很...

no白菜
04/13
0
0
动态显示和隐藏状态栏(包括底部虚拟按键)

小米Launcher有一个细节上的功能效果:在长按桌面应用图标时,会隐藏状态栏,然后在状态栏原有的布局上显示卸载或删除的操作栏。放手后,操作栏隐藏,状态栏显示出来。也就是说,这个过程是涉...

不正经啊不正经
2015/07/29
0
1
Android Activity设置全屏

Activity设置全屏显示(隐藏标题栏和状态栏): 方法一: 在Activity oncreate()方法中 //隐去电池等图标和一切修饰部分(状态栏部分) this.getWindow().setFlags(WindowManager.LayoutParams...

SRain215
2016/07/05
69
2
Android简单实现系统状态栏设置

github代码直通车 啥也不说了,先上效果图: giphy.gif 设置状态栏透明,通过添加WindowManager.LayoutParams.FLAGTRANSLUCENTSTATUS属性设置。 给状态栏设置颜色: 1.首先调用上面的setTran...

翻滚吧李博
2017/11/23
0
0
android 动态显示和隐藏状态栏

View类提供了setSystemUiVisibility和getSystemUiVisibility方法,这两个方法实现对状态栏的动态显示或隐藏的操作,以及获取状态栏当前可见性。 setSystemUiVisibility(int visibility)方法可...

Jamsm
2016/02/02
131
0

没有更多内容

加载失败,请刷新页面

加载更多

中秋快乐!!!

HiBlock
23分钟前
0
0
Node安装教程

1、安装最新版的node 2、设置相关目录(以D盘为例) 分别建立目录:D:\node,D:\node\node-globa,D:\node\node-cache 命令行输入: // 设置npm国内镜像 npm config set registry https://re...

Mohan710
51分钟前
1
0
中国发布域名系统基础软件 “红枫”

9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软件 “红枫(Maple DNS)”。 9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软...

问题终结者
今天
3
0
Shell编程(分发系统介绍、expect远程登录、expect远程执行命令、expect传递参数)

分发系统介绍expect 分发系统expect即分发脚本,是一种脚本语言;通过他可以实现传输,输入命令(上线代码) 应用场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者...

蛋黄_Yolks
今天
2
0
Java Http请求工具类

public static String httpPost(String source, String params) {URL url = null;HttpURLConnection conn = null;OutputStream os = null;String ret = null;try {......

yuewawa
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部