Android源码修改实现动态地隐藏和显示状态栏

修改PhoneWindowManager.java:

+    public void hideStatusBar(boolean hide) {
+    	mHideStatusBar = hide;
+    	onOverlayChangedLw();
+	}

   @Override
    public void onOverlayChangedLw() {
        onConfigurationChanged();
    }

    @Override
    public void onConfigurationChanged() {
        Context uiContext = getSystemUiContext();
        final Resources res = uiContext.getResources();

+		if(mHideStatusBar) { 
+			mStatusBarHeightForRotation[mPortraitRotation] =
+                mStatusBarHeightForRotation[mUpsideDownRotation] = 0;
+            mStatusBarHeightForRotation[mLandscapeRotation] =
+                mStatusBarHeightForRotation[mSeascapeRotation] = 0;
+		} else {
			mStatusBarHeightForRotation[mPortraitRotation] =
                mStatusBarHeightForRotation[mUpsideDownRotation] = res.getDimensionPixelSize(
                                com.android.internal.R.dimen.status_bar_height_portrait);
            mStatusBarHeightForRotation[mLandscapeRotation] =
                mStatusBarHeightForRotation[mSeascapeRotation] = res.getDimensionPixelSize(
                        com.android.internal.R.dimen.status_bar_height_landscape);
+		}
		//以下省略
		........
}

调用hideStatusBar方法,可实现动态显示和隐藏状态栏,隐藏是去掉状态栏高度的。状态栏是锁屏的一部分,这样修改不影响锁屏功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值