对Activity顶部嵌套的"title_bar"进行状态栏透明化

	
		@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_layout_contentview);
		getTranslucentStatusBar(findViewById(R.id.title_bar));
	}
	
	/**
	 * 对Activity顶部嵌套的"title_bar"进行状态栏透明化
	 */
	@TargetApi(Build.VERSION_CODES.KITKAT)
	public void getTranslucentStatusBar(View view) {
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
			Window window = getWindow();
			window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
					WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
			// window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

			int statusBarHeight = getStatusBarHeight(this.getBaseContext());
			view.setPadding(0, statusBarHeight, 0, 0);
		}
	}
	
		/**
	 * 用于获取状态栏的高度。 使用Resource对象获取(推荐这种方式)
	 *
	 * @return 返回状态栏高度的像素值。
	 */
	public static int getStatusBarHeight(Context context) {
		int result = 0;
		int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
		if (resourceId > 0) {
			result = context.getResources().getDimensionPixelSize(resourceId);
		}
		return result;
	}

猜你喜欢

转载自blog.csdn.net/a2241076850/article/details/79847191
今日推荐