相关疑难解决方法(0)

如何以编程方式检测 Android 设备是否处于暗模式?

我正在尝试为我的 Android 应用程序支持 Android Q Dark 主题,但我无法弄清楚如何根据我当前所在的主题导入不同的资产。

我使用官方的 DayNight 主题来制作深色/浅色版本和可绘制对象,只需指向 XML 就很容易,它会根据启用的内容从 values 或 values-night 中选择正确的值。

我想做一些类似的事情,根据主题它会加载资产“priceTag_light.png”或“priceTag_dark.png”。

val inputStream = if(darkIsEnabled) { 
                    assets.open("priceTag_dark.png")
                  } else {
                    assets.open("priceTag_light.png")
                  }
Run Code Online (Sandbox Code Playgroud)

有没有办法让我得到那个标志?

android android-theme kotlin android-dark-theme

17
推荐指数
3
解决办法
6539
查看次数

以编程方式获取为活动应用的主题值

我想知道应用程序中的Activity应用了哪个主题.

通常我们通过使用来设置主题

setTheme(android.R.style.Theme_Light);
Run Code Online (Sandbox Code Playgroud)

这里我们指定样式,因此我们可以通过编程方式获得为活动准确应用的特定样式类型.

谢谢

android android-theme android-activity android-styles

6
推荐指数
1
解决办法
6661
查看次数

如果我的手机处于浅色或深色模式,如何制作带有文本和背景颜色的 Android 启动画面?

我已经为此工作了一段时间,不幸的是,如果不使用图像,我无法达到预期的效果。我已经研究了 Stack Overflow 和几乎所有地方,但仍然没有找到完全可以做到这一点的解决方案。

我仍在尝试做的是:

  • 手机处于浅色模式 > 启动画面为白色背景,中间是黑色的 ABC 字样

  • 手机处于暗模式 > 启动画面为黑色背景,中间为白色的 ABC 字样

这是我到目前为止所拥有的:

SplashActivity.cs

namespace Japanese.Droid
{
    [Activity(Label = "Anki+", Theme = "@style/LaunchTheme", MainLauncher = true, NoHistory = true)]
    public class SplashActivity : Activity
    {
Run Code Online (Sandbox Code Playgroud)

样式文件

<style name="LaunchTheme" parent="Theme.AppCompat">
    <item name="android:windowBackground">@drawable/splash_screen</item>
    <item name="android:navigationBarColor">#ffffff</item>
</style>
Run Code Online (Sandbox Code Playgroud)

飞溅屏幕.xaml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white"/>
    <item>
        <bitmap android:src="@drawable/splash_logo"
                android:tileMode="disabled"
                android:gravity="center"
                android:layout_gravity="center"/>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

splash_screen_night.xaml

<?xml version="1.0" encoding="UTF-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/black"/>
    <item>
        <bitmap android:src="@drawable/splash_logo"
                android:tileMode="disabled"
                android:gravity="center"
                android:layout_gravity="center"/>
    </item>
</layer-list> …
Run Code Online (Sandbox Code Playgroud)

android xamarin.android xamarin android-studio

5
推荐指数
1
解决办法
3588
查看次数