热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android4.0桌面底部状态栏修改

转载地址:http:www.2cto.comkf201207138610.htmlAndroid4.0桌面底部状态栏分为两个部分:左边是三个导航键:从左置右依次是:返回键,

转载地址:http://www.2cto.com/kf/201207/138610.html

      Android 4.0 桌面底部状态栏分为两个部分:左边是三个导航键:从左置右依次是:返回键 ,Home键和RecentApplication键,就是查看最近打开的所有程序,多任务切换就在这里。 这三个键为一个区域 叫NavigationArea,即导航区。  最右边是NotificationArea,也就是提示信息区,有电量,无线信号,蓝牙等信息显示。 这条StatusBar,是无论打开哪个程序都会显示在最下方的。

       客户的要求需要把底部状态栏进行隐藏,通过物理按键进行操作就可以了,这些虚拟按键还有右边的状态导航都全部隐藏。我最初以为在Launcher里面实现的,看代码看了看了半个多小时居然连个返回按钮的图标都没有找到。心里想打开任意程序居然都可以显示在下方应该是系统UI把,我就试着去(frameworks/base/packages/SystemUI/res)下面的drawable理解找“返回键”图标,居然找到了,心里尽是欢喜。顺藤摸瓜最后找到图标所属的java类是TabletStatusBar.java(frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet)在找到该类下的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);

       mRecentButton = mNavigationArea.findViewById(R.id.recent_apps);

       mRecentButton.setOnClickListener(mOnClickListener);在这里就知道系统做了什么事情了。继续往上看了一下使用到了sb这个View对象原来在这里引用的。

final TabletStatusBarView sb =(TabletStatusBarView)View.inflate(context, R.layout.status_bar, null); TabletStatusBarView.java类是继承FrameLayout,在这里就可以设置它的隐藏或者显示属性了。

//-----------------------------------------------------------------------------------------------------------------------------------------

       今天我在看关于怎样隐藏导航栏的问题。因为自己android基础薄弱,所以,一时之间就像无头的苍蝇,在网上乱搜。终于被我看到了上面这篇文章,一下子让我感觉有了点头绪。

    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);

        mBackButton.setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE);
        mHomeButton.setVisibility(disableHome ? View.INVISIBLE : View.VISIBLE);
        mRecentButton.setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE);

        mInputMethodSwitchButton.setScreenLocked(
                (visibility & StatusBarManager.DISABLE_SYSTEM_INFO) != 0);

     }

         成功编译后,重新刷机,发,那个查看最近应用程序的键真的消失了。


推荐阅读
author-avatar
小群群zheng
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有