动态设置状态栏颜色和app主色或者当前页面主色一致

废话不说了,直接代码吧。
1.动态的创建TextView:
    // 动态设置状态栏颜色和app主色一致
    private TextView textView;
    private LinearLayout.LayoutParams lParams;

2.在Activity的onCreate()或者其他进行初始化的地方中添加到根视图即可:
                    textView = new TextView(this);
                    lParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, getStatusBarHeight());
                    //设置状态栏颜色和主色一致
                    textView.setBackgroundColor(Color.RED);
                    textView.setLayoutParams(lParams);
                    // 获得根视图并把TextView加进去。
                    ViewGroup view = (ViewGroup) getWindow().getDecorView();
                    view.addView(textView);
下面是我在BaseActivity中封装的方法,用来获取状态栏高度。
    public int getStatusBarHeight() {
        int result = 0;
        int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }

 上面代码中假定主色为红色,大家可以根据实际情况在获取到主色时再把textView添加到根视图中。

你可能感兴趣的:(开发)