Определите один рисунок для кнопки и измените его в зависимости от выбранной темы MeterialDesign. - PullRequest
0 голосов
/ 27 октября 2019

У меня есть ImageButton, который использует drawable / sampleimage.xml в качестве источника, и я использую MaterialDesign для своей темы приложения.

Мой макет для кнопки выглядит следующим образом:

<ImageButton
        android:id="@+id/sampleButton"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/sampleimage.xml" />

Мой файл styles.xml выглядит следующим образом:

<resources>
    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
</resources>

Я изменяю свою тему с настройкой в ​​Android 10 или

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)

и

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)

на Android9.

Я не знаю, как определить для моей кнопки одну прорисовку, которая меняется в зависимости от выбранной темы. Я хочу использовать drawable / sampleimage_light.xml для светлой темы и drawable / sampleimage_dark.xml при использовании темной темы.

1 Ответ

0 голосов
/ 27 октября 2019

Мои рисунки являются векторными изображениями, поэтому я просто изменил цвет заливки на? Attr / colorOnSurface

Теперь мой рисунок выглядит так:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:fillColor="?attr/colorOnSurface"
        android:pathData="M8,5v14l11,-7z"/>
</vector>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...