国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android 設(shè)置app深色、淺色、跟隨系統(tǒng)

這篇具有很好參考價值的文章主要介紹了Android 設(shè)置app深色、淺色、跟隨系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Android深色模式適配

我們需要再用戶設(shè)置時候,記錄下來,用戶的設(shè)置,等app再次啟動時候,獲取之前設(shè)置,重新設(shè)置

    public static void setThemeMode() {
        int themeModeType = SpUtils.getThemeModeType();
        if (themeModeType == 1) {
            //1:淺色
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
        } else if (themeModeType == 2) {
            // 2:深色
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
        } else {
            //跟隨系統(tǒng)
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
        }
    }

1、設(shè)置單個Activity

   /**
     * 設(shè)置單個Activity 深色、淺色、跟隨系統(tǒng)
     *
     * @param appCompatDelegate Activity AppCompatDelegate
     * @param themeModeType  0:跟隨系統(tǒng) 1:淺色 2:深色
     */
    public static void setThemeModeByActivity(AppCompatDelegate appCompatDelegate, int themeModeType) {
        if (appCompatDelegate != null) {
            switch (themeModeType) {
                case 0:
                    appCompatDelegate.setLocalNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
                    break;
                case 1:
                    appCompatDelegate.setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
                    break;
                case 2:
                    appCompatDelegate.setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
                    break;
            }
        }
    }

2、獲取當前Activity是否開啟深色

   /**
     * 通過Activity Resources 獲取當前是否開啟深色模式
     *
     * @param object
     * @return
     */
    public static boolean nightModeByUiResources(Object object) {
        if (object != null) {
            if (object instanceof Activity) {
                int currentNightMode = ((Activity) object).getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
                return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
            } else if (object instanceof androidx.fragment.app.Fragment) {
                int currentNightMode = ((Fragment) object).getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
                return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
            } else if (object instanceof android.app.Fragment) {
                int currentNightMode = ((android.app.Fragment) object).getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
                return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
            }
        }

        return false;
    }

3、webView設(shè)置

   /**
     * 設(shè)置webView 深色或者淺色模式
     *
     * @param activity
     * @param webSetting
     */
    public static void setWebViewNight(Activity activity, WebSettings webSetting) {
        if (activity == null || webSetting == null) {
            return;
        }
        setWebViewNight(webSetting, nightModeByUiResources(activity));

    }

    /**
     * 設(shè)置webView 暗黑模式
     *
     * @param webSetting
     * @param nightMode true:深色  false:淺色
     */
    public static void setWebViewNight(WebSettings webSetting, boolean nightMode) {
        boolean featureSupported = false;
        try {
            featureSupported = WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK);
        } catch (AbstractMethodError e) {
            e.printStackTrace();
        }
        if (featureSupported) {
            if (nightMode) {
                //啟用 webview 的強制黑暗模式,這意味著 webview 的內(nèi)容將始終以黑暗主題呈現(xiàn)
                WebSettingsCompat.setForceDark(webSetting, WebSettingsCompat.FORCE_DARK_ON);
            } else {
                //禁用 webview 的強制暗模式,這意味著 webview 的內(nèi)容將按原樣呈現(xiàn)
                WebSettingsCompat.setForceDark(webSetting, WebSettingsCompat.FORCE_DARK_OFF);

            }
        }
    }

但是h5頁面需要做特別判斷才能拿到webView深淺模式

@media (prefers-color-scheme: dark) {這里是樣式代碼}

4、深色淺色切換時候,重啟app文章來源地址http://www.zghlxwxcb.cn/news/detail-811770.html

  /**
     * 淺色和深色模式切換,殺死進程,重新打開app
     *
     * @param activity
     */
    public static void restartApp(Activity activity) {
        Intent intent = activity.getPackageManager().getLaunchIntentForPackage(activity.getPackageName());
        if (intent != null) {
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            activity.startActivity(intent);
            android.os.Process.killProcess(android.os.Process.myPid());
        }
    }

到了這里,關(guān)于Android 設(shè)置app深色、淺色、跟隨系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Typora打造最適合編程筆記的精美主題(淺色版和修改后的深色版),可自行修改喜歡的樣式。

    Typora打造最適合編程筆記的精美主題(淺色版和修改后的深色版),可自行修改喜歡的樣式。

    轉(zhuǎn)載自 豫冬川:Typora打造最適合編程筆記的精美主題(淺色版和修改后的深色版),可自行修改喜歡的樣式。 Typora是非常優(yōu)秀的Markdown編輯器,可惜自帶的樣式比較簡陋。經(jīng)過多種typora主題的選擇,感覺少數(shù)派風(fēng)格最好,@張晉基于少數(shù)派風(fēng)格的主題進行了一些修改。我覺得

    2023年04月18日
    瀏覽(20)
  • Android項目在 app 中通過 WebView 訪問 url顯示空白,使用瀏覽器可以打開,Android WebView加載出現(xiàn)空白頁面問題解決

    Android項目在 app 中通過 WebView 訪問 url顯示空白,使用瀏覽器可以打開,Android WebView加載出現(xiàn)空白頁面問題解決

    服務(wù)器證書校驗主要針對 WebView 的安全問題。 在 app 中需要通過 WebView 訪問 url,因為服務(wù)器采用的自簽名證書,而不是 ca 認證,使用 WebView 加載 url 的時候會顯示為空白,出現(xiàn)無法加載網(wǎng)頁的情況。 使用 ca 認證的證書,在 WebView 則可以直接顯示出來,不需要特殊處理。 以往

    2024年02月04日
    瀏覽(30)
  • 將應(yīng)用設(shè)置成系統(tǒng)App/獲取Android設(shè)備SN號

    將應(yīng)用設(shè)置成系統(tǒng)App/獲取Android設(shè)備SN號

    1,和系統(tǒng)簽名一致;(簽名設(shè)置+簽名文件) 2,配置Manifest ?至此你的App就是一個系統(tǒng)App了,可以執(zhí)行一些系統(tǒng)App才能有的操作,如獲取機器SN號:

    2024年02月13日
    瀏覽(20)
  • Android WebView 開發(fā)通過 chrome://inspect 調(diào)試頁面設(shè)置

    Android WebView 開發(fā)通過 chrome://inspect 調(diào)試頁面設(shè)置

    1. 首先在app/src/main/AndroidManifest.xml 設(shè)置允許對app debug 2. 在初始化 WebView 時調(diào)用?webView.setJavaScriptEnabled(true) 方法 3. 手機端/模擬器安裝移動端chrome瀏覽器,如果是配合pc端chrome調(diào)試,手機端chrome版本不能比pc端chrome版本高,否則可能無法成功調(diào)試。此外也可以使用手機端chrome+

    2024年02月05日
    瀏覽(24)
  • Android 13.0 系統(tǒng)多個播放器app時,設(shè)置默認播放器

    ?在13.0的系統(tǒng)產(chǎn)品開發(fā)中,對于在系統(tǒng)中有多個播放器的時候,這時候如果調(diào)用代碼打開播放器,會出現(xiàn)多個播放器列表讓用戶 選擇啟動哪個播放器,所以產(chǎn)品開發(fā)需求需要設(shè)置默認播放器,當打開播放器的時候,就直接打開播放器就可以了,所以就需要 了解查詢播放器列

    2024年02月08日
    瀏覽(55)
  • android 12.0 第三方輸入法app設(shè)置系統(tǒng)默認輸入法

    在12.0的產(chǎn)品開發(fā)中,有功能需要要求設(shè)置默認輸入法,替換掉系統(tǒng)的輸入法,所以這就需要了解設(shè)置輸入法的相關(guān)功能需求,然后根據(jù)輸入法包名來設(shè)置默認輸入法 在設(shè)置系統(tǒng)默認輸入法中 每個系統(tǒng)輸入法的id不同 根據(jù)id設(shè)置輸入法 需要先根據(jù)需要設(shè)置默認輸入法的id,來

    2024年02月07日
    瀏覽(102)
  • Android免安裝升級系統(tǒng)WebView內(nèi)核探索

    Android免安裝升級系統(tǒng)WebView內(nèi)核探索

    Android5.0以后WebView升級需要去Google Play安裝APK(圖一),就算安裝了以后也不一定能行,像華為、Amazon等特殊機型WebView的Chromium版本一般比較低,只能用它自己的WebView無法用Google的WebView(圖二)。 華為機上WebView內(nèi)核的Chromium版本低于107無法播放H265視頻,為了解決上述問題可以用

    2024年03月27日
    瀏覽(30)
  • Android Studio run app 設(shè)置 release 模式

    Android Studio run app 設(shè)置 release 模式

    背景 為驗證我們的 SDK 集成在客戶應(yīng)用上的質(zhì)量,需要我們的測試環(huán)境盡量的與客戶應(yīng)用保持一致??蛻羝毡槎紩?release 包并混淆,然后進行上線應(yīng)用,因此我們在測試過程中也需要使用 release 包進行驗證。對于 Android Studio 運行項目,默認安裝到手機上的 app 屬于debug 包,

    2024年02月12日
    瀏覽(52)
  • Android 分別使用Java和Kotlin給Textview設(shè)置第三方字體、APP全局字體、 Android X字體設(shè)置

    Android 分別使用Java和Kotlin給Textview設(shè)置第三方字體、APP全局字體、 Android X字體設(shè)置

    本文介紹Android實現(xiàn)全局設(shè)置自定義字體和局部設(shè)置自定義字體即單個TextView設(shè)置字體,同時也提供了一些優(yōu)秀的三方字體框架,基本可以滿足開發(fā)者對字體設(shè)置的全部要求。 使用自定義字體前后效果圖 首先需要了解Android之a(chǎn)ssets 簡而言之,你的圖片、svg文件放在工程的res/d

    2024年02月07日
    瀏覽(19)
  • android 12.0設(shè)置上網(wǎng)應(yīng)用白名單(上網(wǎng)app白名單)

    在12.0的產(chǎn)品rom定制開發(fā)中,在對產(chǎn)品進行網(wǎng)絡(luò)模塊開發(fā)中,有功能需要要求設(shè)置某些app可以上網(wǎng),某些app不可以上網(wǎng),就是所謂的網(wǎng)絡(luò)應(yīng)用白名單功能 在12.0系統(tǒng)中整個網(wǎng)絡(luò)模塊都是由NetworkManagementService.java服務(wù)負責(zé)通訊的 接下來先看下NetworkManagementService.java

    2024年02月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包