Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为按钮定义单个可绘制按钮,并根据选定的MeterialDesign主题对其进行更改_Android_Android Studio_Android Layout_Kotlin_Material Design - Fatal编程技术网

Android 为按钮定义单个可绘制按钮,并根据选定的MeterialDesign主题对其进行更改

Android 为按钮定义单个可绘制按钮,并根据选定的MeterialDesign主题对其进行更改,android,android-studio,android-layout,kotlin,material-design,Android,Android Studio,Android Layout,Kotlin,Material Design,我有一个ImageButton,它使用drawable/sampleimage.xml作为源代码,我正在为我的应用程序主题使用MaterialDesign 我的按钮布局如下所示: <ImageButton android:id="@+id/sampleButton" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/s

我有一个ImageButton,它使用drawable/sampleimage.xml作为源代码,我正在为我的应用程序主题使用MaterialDesign

我的按钮布局如下所示:

<ImageButton
        android:id="@+id/sampleButton"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/sampleimage.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>
<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>

在安卓9上

我不知道如何定义一个单一的可绘制的按钮,它会根据所选的主题而变化。
我想使用drawable/sampleimage\u light.xml作为亮主题,使用暗主题时使用drawable/sampleimage\u dark.xml。

我的可绘制对象是矢量图像,所以我只是将填充颜色更改为?attr/colorOnSurface

现在,我的drawable如下所示:

<ImageButton
        android:id="@+id/sampleButton"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="@drawable/sampleimage.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>
<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>


您可以在
drawable night
文件夹中创建夜间模式可绘制资源,这些资源应该会自动使用。@Pawel谢谢,我会尝试的!