如何设置白天模式和夜间模式

4

Theme.class

main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:padding="@dimen/padding_medium"
            tools:context=".MainActivity" />
    <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@+id/textView1"
            android:layout_below="@+id/textView1"
            android:layout_marginRight="59dp"
            android:layout_marginTop="41dp"
            android:text="Button" />
</RelativeLayout>

我希望能在Android上的按钮点击时设置日间和夜间主题。请告诉我如何实现这一点。如何创建样式等。我是Android开发的新手,尝试了很多次但都没有成功。


@codo 能帮我设置白天和夜晚模式主题吗? - user1872231
6
欢迎来到 Stack Overflow。下次请使用正确的大小写和标点符号。很抱歉我不理解你的问题。您是想为应用程序和/或手机打开和关闭夜间模式,还是想为白天和夜间模式提供不同的 UI 样式?或者您想实现什么样的目标,卡在哪里了?请说明清楚。 - Codo
我想在应用程序中设置夜间模式和白天模式。 - user1872231
我想设置白天模式和夜间模式,以便用户在daynight模式按钮上单击时可以更改。请帮帮我,发送一个虚拟示例。 - user1872231
@codo 你在吗?请帮帮我,亲爱的。 - user1872231
显示剩余2条评论
2个回答

1
添加到您的res values-night并定义colors.xml。在super.onCreate()之后,在ApplicationActivity中定义:
UiModeManager umm = (UiModeManager){#context}.getSystemService(Context.UI_MODE_SERVICE); umm.setNightMode(UiModeManager.MODE_NIGHT_YES); //MODE_NIGHT_YES|MODE_NIGHT_NO|MODE_NIGHT_AUTO
官方文档 - UiModeManager
这段代码适用于API 23,在19中可能不起作用。

0

请查看此答案中的解决方案:如何在Android应用程序中设置白天和黑夜主题

在SDK示例中,有一个完整的可运行示例,我相信从API 11到API 16都可以使用(我还没有下载API 17)。

我已经使用了链接答案中提供的解决方案,它有效。

希望这也能帮助到您。


我已经尝试过,但是当我将其与我的应用程序实现时出现错误。 - user1872231
公共静态无返回函数 onActivityCreateSetTheme(Activity activity) { switch (sTheme) { default: case THEME_WHITE: activity.setTheme(R.style.Theme_White); break; case THEME_BLUE: activity.setTheme(R.style.Theme_Blue); break; } } 在该代码中,Theme_White 无法解析或不是一个字段。 - user1872231
如何修复@Codo的错误 - user1872231
我不明白这段代码与夜间模式有何关联。而且它缺少很多上下文信息。请开一个新问题,添加所有相关的代码,并用 { } 按钮格式化它。 - Codo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接