修改魅族和小米状态栏的文字颜色

来源:互联网 发布:怎么投诉阿里云 编辑:程序博客网 时间:2024/05/22 22:12

代码如下:在你的BaseActivity或者Activity代码中添加 SystemBarTextColorChange.changeBarTextColor(Activity.this,true); 

http://blog.csdn.net/lxk_1993/article/details/51330675

import android.app.Activity;import android.content.Context;import android.view.Window;import android.view.WindowManager;import java.lang.reflect.Field;import java.lang.reflect.Method;/** * create by Smile_KO on 2016/5/6 10:40. * use for 修改状态栏文字颜色 */public class SystemBarTextColorChange {    public static void changeBarTextColor(Context context, boolean darkmode){        String manufacturer = android.os.Build.MANUFACTURER;        if (manufacturer.equals("Meizu") {            setMeizuStatusBarDarkIcon((Activity) context, darkmode);        } else if (manufacturer.equals("Xiaomi") {            setMiuiStatusBarDarkMode((Activity) context, darkmode);        }    }    //修改小米 MIUI    private static boolean setMiuiStatusBarDarkMode(Activity activity, boolean darkmode) {        Class<? extends Window> clazz = activity.getWindow().getClass();        try {            int darkModeFlag = 0;            Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");            Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");            darkModeFlag = field.getInt(layoutParams);            Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);            extraFlagField.invoke(activity.getWindow(), darkmode ? darkModeFlag : 0, darkModeFlag);            return true;        } catch (Exception e) {            e.printStackTrace();        }        return false;    }    //修改魅族 Flyme    private static boolean setMeizuStatusBarDarkIcon(Activity activity, boolean dark) {        boolean result = false;        if (activity != null) {            try {                WindowManager.LayoutParams lp = activity.getWindow().getAttributes();                Field darkFlag = WindowManager.LayoutParams.class                        .getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");                Field meizuFlags = WindowManager.LayoutParams.class                        .getDeclaredField("meizuFlags");                darkFlag.setAccessible(true);                meizuFlags.setAccessible(true);                int bit = darkFlag.getInt(null);                int value = meizuFlags.getInt(lp);                if (dark) {                    value |= bit;                } else {                    value &= ~bit;                }                meizuFlags.setInt(lp, value);                activity.getWindow().setAttributes(lp);                result = true;            } catch (Exception e) {                e.printStackTrace();            }        }        return result;    }}




1 0
原创粉丝点击