как исправить изменение цвета значка просмотра изображения в темном и облегченном режимах устройства

Привет, я пытаюсь включить значки в просмотр изображений, но когда включен темный режим, цвет темный, а в облегченном режиме он отображается белым, я хочу, чтобы цвет был белым в обоих режимах

вектор // значок

<vector android:height="24dp" android:tint="@color/white"
    android:viewportHeight="24" android:viewportWidth="24"
    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="@color/white" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
</vector>

ImageView // значок включен в качестве фона

<ImageView
        android:id="@+id/backArrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:background="@drawable/ic_baseline_arrow_back_24"
        android:contentDescription="@string/todo"
        android:elevation="10dp" />

themes.xml // litemod / normal

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.MyAppNotFinal" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorOnPrimary">@color/black</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">#FFFFFFFF</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/lite_grey</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">@color/black</item>
        <!-- Customize your theme here. -->
        <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item>
    </style>
</resources>

themes.xml // темный мод / ночь

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.MyAppNotFinal" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- Primary brand color. -->
        <item name="colorOnPrimary">@color/black</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">#FFFFFFFF</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. -->
        <item name="bottomSheetDialogTheme">@style/AppBottomSheetDialogTheme</item>
    </style>
</resources>

colors.xml

<?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">#000000</color>
    <color name="white">#FFFFFFFF</color>
    <color name="grey">#181818</color>
    <color name="lite_grey">#e2e2e2</color>
    <color name="dark_red">#bd081c</color>
    <color name="green">#0B5B37</color>
</resources>

person Vasant Raval    schedule 08.07.2021    source источник


Ответы (1)


Хорошо, я получил ответ на свой вопрос, на самом деле в моем приложении уже есть темные элементы, и когда я добавляю белый фон в изображение или еще несколько элементов, но он меняется на темно-серый в темном моде устройства, которого я не хочу, поэтому я есть решение этой проблемы

Шаг 1

Удалите night / dark theme.xml в значениях

Шаг 2

В нормальном / светлом theme.xml в значениях поменять

<style name="Theme.MyAppNotFinal" parent="Theme.MaterialComponents.DayNight.NoActionBar">

to

<style name="Theme.MyAppNotFinal" parent="Theme.MaterialComponents.Light.NoActionBar">

Шаг 3

Там же theme.xml // светлая / обычная тема

добавить эту строку

 <item name="android:forceDarkAllowed" tools:targetApi="q">false</item>

внутри стиля

нравится

<style name="Theme.MyAppNotFinal" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
</style>

этот метод сработал для меня, если у кого-то все еще есть проблемы, пожалуйста, проверьте приведенный ниже вопрос, на него есть много ответов, надеюсь, он сработает для вас

Вопрос

person Vasant Raval    schedule 20.07.2021