相关疑难解决方法(0)

Android - 如何使用AppCompatDelegate.MODE_NIGHT_AUTO检测夜间模式是否打开

我正在使用Androids内置的日/夜模式功能,我想为我的应用添加一个选项 AppCompatDelegate.MODE_NIGHT_AUTO

我遇到了问题,因为我的应用程序需要以编程方式对某些内容进行着色,而我无法弄清楚如何检查应用程序是在夜间还是白天模式中考虑自己.没有它,我不能设置标志来选择正确的颜色.

调用AppCompatDelegate.getDefaultNightMode()只返回无用的AppCompatDelegate.MODE_NIGHT_AUTO.

我没有看到任何可以告诉我的东西,但一定有什么东西?

android android-night-mode

24
推荐指数
6
解决办法
5185
查看次数

如果默认为auto,如何获取AppCompatDelegate当前模式

我有这样的活动:

package com.nkdroid.daynighttheme;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AppCompatDelegate;
import android.widget.TextView;

public class ModeActivity extends AppCompatActivity {

    private TextView txtModeType;
    int modeType;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_auto_mode);
        txtModeType = (TextView) findViewById(R.id.txtModeType);
        modeType = AppCompatDelegate.getDefaultNightMode();

        if (modeType == AppCompatDelegate.MODE_NIGHT_AUTO) {
            txtModeType.setText("Default Mode: Auto");
        } else if (modeType == AppCompatDelegate.MODE_NIGHT_YES) {
            txtModeType.setText("Default Mode: Night");
        } else if (modeType == AppCompatDelegate.MODE_NIGHT_NO) {
            txtModeType.setText("Default Mode: Day");
        }
    }
}`
Run Code Online (Sandbox Code Playgroud)

如果默认模式设置为AUTO,是否可以获得当前激活的模式(白天或夜晚)?

android android-appcompat

11
推荐指数
2
解决办法
1829
查看次数