Android改变状态栏

Android 状态栏改变的方法:

SystemBarTintManager tintManager;
	
	/**
	 * 设置系统状态栏的颜色 Exception
	 */
	@SuppressLint("InlinedApi")
	@SuppressWarnings("unused")
	private void setActionBarTitle(RelativeLayout main_relative, int position)
			throws Exception {
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
			ApplicationVar appvar = (ApplicationVar) getApplication();
			Window win = getWindow();
			WindowManager.LayoutParams winParams = win.getAttributes();
			final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
			if (true) {
				winParams.flags |= bits;
			} else {
				winParams.flags &= ~bits;
			}
			win.setAttributes(winParams);
			if (tintManager == null) {
				tintManager = new SystemBarTintManager(this);
			}
			if (position == 1) {
				int status = appvar.GetValue(Constants.STATUS_HEIGHT, 0);
				if (status == 0) {
					Class<?> c = Class.forName("com.android.internal.R$dimen");
					Object obj = c.newInstance();
					java.lang.reflect.Field field = c.getField("status_bar_height");
					int x = Integer.parseInt(field.get(obj).toString());
					status = getResources().getDimensionPixelSize(x);// 获取状态栏的高度
					appvar.saveValue(Constants.STATUS_HEIGHT, status);
				}
				
				tintManager.setStatusBarTintEnabled(true);
				main_relative.setPadding(0, status, 0, 0);
				tintManager.setStatusBarAlpha(10);
				tintManager.setStatusBarTintResource(R.color.red);
			} else {
				// 激活状态栏设置
				tintManager.setStatusBarTintEnabled(true);
				main_relative.setPadding(0, 0, 0, 0);
				tintManager.setNavigationBarTintEnabled(true);
		     	tintManager.setStatusBarAlpha(0);
			}
		}
	}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值