Android - 深色模式问题:深色背景上的黑色文本

And*_*dry 11 android themes colors android-dark-theme android-darkmode

当我启用深色模式时,我的应用程序上的某些菜单看起来很糟糕:非常暗的背景上的黑色文本。我对颜色完全是一个初学者。

在此输入图像描述

我还没有接触过 android studio 上默认颜色设置的任何内容,所以我有默认的两个主题 XML 和 Color Xml:

     <resources xmlns:tools="http://schemas.android.com/tools">
     <!-- Base application theme. -->
     <style name="Theme.TestSS" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
         <!-- Primary brand color. -->
         <item name="colorPrimary">@color/purple_500</item>
         <item name="colorPrimaryVariant">@color/purple_700</item>
         <item name="colorOnPrimary">@color/white</item>
         <!-- Secondary brand color. -->
         <item name="colorSecondary">@color/teal_200</item>
         <item name="colorSecondaryVariant">@color/teal_700</item>
         <item name="colorOnSecondary">@color/black</item>
         <!-- Status bar color. -->
         <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
         <!-- Customize your theme here. -->
     </style>

     <style name="Theme.TestSS.NoActionBar">
          <item name="windowActionBar">false</item>
          <item name="windowNoTitle">true</item>
     </style>

     <style name="Theme.TestSS.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

     <style name="Theme.TestSS.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
   </resources>
Run Code Online (Sandbox Code Playgroud)

和:

    <resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
     <style name="Theme.TestSS" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
         <!-- Primary brand color. -->
         <item name="colorPrimary">@color/purple_200</item>
         <item name="colorPrimaryVariant">@color/purple_700</item>
         <item name="colorOnPrimary">@color/black</item>
         <!-- Secondary brand color. -->
         <item name="colorSecondary">@color/teal_200</item>
         <item name="colorSecondaryVariant">@color/teal_200</item>
         <item name="colorOnSecondary">@color/black</item>
         <!-- Status bar color. -->
         <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
         <!-- Customize your theme here. -->
     </style>
    </resources>
Run Code Online (Sandbox Code Playgroud)

颜色:

   <?xml version="1.0" encoding="utf-8"?>
     <resources>
      <color name="purple_200">#FFBB86FC</color>
      <color name="purple_500">#FF6200EE</color>
      <color name="purple_700">#FF3700B3</color>
      <color name="teal_200">#FF03DAC5</color>
      <color name="teal_700">#FF018786</color>
      <color name="black">#FF000000</color>
      <color name="white">#FFFFFFFF</color>
     </resources>
Run Code Online (Sandbox Code Playgroud)

问题出在哪里?我正在 Android R 上使用 AVD 进行测试,并在我的物理设备上使用 Android Q 进行测试。感谢您的帮助

Cep*_*has 25

转到 Activity_main.xml 并将颜色保持黑色的 TextView 的 textColor 属性设置为

android:textColor = "?android:textColorPrimary"
Run Code Online (Sandbox Code Playgroud)

转到res/values/themes/themes.xml(夜间)并在以下位置添加以下代码<!-- Customize your theme here. -->

<item name="android:textColorPrimary">@color/white</item>
Run Code Online (Sandbox Code Playgroud)

转到res/values/themes/themes.xml并在以下位置添加以下代码<!-- Customize your theme here. -->

<item name="android:textColorPrimary">@color/black</item>
Run Code Online (Sandbox Code Playgroud)

运行您的应用程序并更改为深色模式。它会起作用的。只需确保代码添加在主题.xml主题.xml(夜间)文件</style>中的结束标记之前


Nik*_*the 5

要将夜间颜色更改为白色,将浅色更改为黑色,请使用以下代码。

\n

\xe2\x80\xa2 打开res/drawable/values/themes.xml并将此代码放入其中。

\n
     <item name="android:textColorPrimary">@color/black</item>\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\xa2 然后打开res/drawable/values/themes.xml(night)并将此代码放入其中。

\n
   <item name="android:textColorPrimary">@color/white</item>\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\xa2 和最后一步在Activity 或片段的 TextView中应用将这一行放入其中。

\n
  android:textColor = "?android:textColorPrimary"\n
Run Code Online (Sandbox Code Playgroud)\n


小智 1

没有为文本设置颜色,如何设置文本颜色?

尝试更改此值@color/black,因为它是唯一与文本颜色匹配的颜色