亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android系統更改狀態欄字體顏色

標簽:
Android

随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面。我们可以进行更多的定制化了,然而有的时候我们使用的是淡色的颜色比如白色,由于状态栏上面的文字为白色,这样的话状态栏上面的文字就无法看清了。因此本文提供一些解决方案,可以是MIUI6+,Flyme4+,Android6.0+支持切换状态栏的文字颜色为暗色。

修改MIUI

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

public 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;

}

 

上面为小米官方提供的解决方案,主要为MIUI内置了可以修改状态栏的模式,支持Dark和Light两种模式。

修改Flyme

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

public 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) {

        }

    }

    return result;

}

 

同理使用跟miui类似的方式

修改Android6.0+

Android 6.0开始,谷歌官方提供了支持,在style属性中配置android:windowLightStatusBar
即可, 设置为true时,当statusbar的背景颜色为淡色时,statusbar的文字颜色会变成灰色,为false时同理。

[代码]xml代码:

?

1

2

3

4

<style name="statusBarStyle" parent="@android:style/Theme.DeviceDefault.Light">

    <item name="android:statusBarColor">@color/status_bar_color</item>

    <item name="android:windowLightStatusBar">false</item>

</style>

 

目前为止,android6.0的市场占有率还很少,而MIUI和flyme在国内占有率还算可以,因此,我们可以尽自己所能,适配更多。如果你还有其他的奇淫技巧,也欢迎分享补充。

原文链接:http://www.apkbus.com/blog-535369-61856.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消