沉浸式

来源:互联网 发布:淘宝怎么看店铺收藏 编辑:程序博客网 时间:2024/04/29 12:14
package com.bwie.zhangyabo;import android.app.Activity;import android.os.Build;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;/** * User:  * Date: 2017-12-05 16:30 * Description:沉浸式工具类 */public class chenjinshi {    /**     * 利用反射获取状态栏高度     * @return     */    private static int getStatusBarHeight(Activity con) {        int result = 0;        //获取状态栏高度的资源id        int resourceId = con.getResources().getIdentifier("status_bar_height", "dimen", "android");        if (resourceId > 0) {            result = con.getResources().getDimensionPixelSize(resourceId);        }        return result;    }    public static void initWindows(Activity context) {        Window window = context.getWindow();        int color = context.getResources().getColor(R.color.holo_gray_bright);//此处可修改为你想看到的颜色        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS                    | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);            //设置状态栏颜色            window.setStatusBarColor(color);            //设置导航栏颜色            window.setNavigationBarColor(color);            ViewGroup contentView = ((ViewGroup) context.findViewById(android.R.id.content));            View childAt = contentView.getChildAt(0);            if (childAt != null) {                childAt.setFitsSystemWindows(true);            }        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {            //透明状态栏            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);            //透明导航栏            window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);            //设置contentview为fitsSystemWindows            ViewGroup contentView = (ViewGroup)context.findViewById(android.R.id.content);            View childAt = contentView.getChildAt(0);            if (childAt != null) {                childAt.setFitsSystemWindows(true);            }            //给statusbar着色            View view = new View(context);            view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight(context)));            view.setBackgroundColor(color);            contentView.addView(view);        }    }}
原创粉丝点击