Android 4.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);

     }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值