Android 图标可在带有API lower 21的按钮中绘制

Android 图标可在带有API lower 21的按钮中绘制,android,android-layout,android-vectordrawable,Android,Android Layout,Android Vectordrawable,我有两个活动,addactivity和ViewActivity。这两个活动共享文件layout\u form.xml中定义的布局视图 首先,我的应用程序需要使用最低sdk版本16。所以在build.gradle文件中,我指定了它 这是layout\u form.xml的一个片段。剩下的代码并不重要 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_

我有两个活动,
addactivity
ViewActivity
。这两个活动共享文件
layout\u form.xml
中定义的布局视图

首先,我的应用程序需要使用最低sdk版本16。所以在
build.gradle
文件中,我指定了它

这是
layout\u form.xml
的一个片段。剩下的代码并不重要

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="orizontal">

        <Button
            android:id="@+id/leftToolbarButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_done"
            android:drawableStart="@drawable/ic_done"
            android:text="ADD"
            android:textColor="@android:color/white" />
        <Button
            android:id="@+id/rightToolbarButton"
            style="@style/Widget.AppCompat.Button.Borderless"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableEnd="@drawable/ic_cancel"
            android:drawableRight="@drawable/ic_cancel"
            android:text="CANCEL"
            android:textColor="@android:color/white" />
    </LinearLayout>
</Toolbar>
现在,如果我在android>=21上运行我的应用程序,一切都正常。工具栏应该是这样的

相反,在安卓16上,它看起来是这样的

如你所见,如果我的应用程序运行在安卓16上(我不知道安卓17或更高版本会发生什么,但低于21) 图标不会更改。它们看起来仍然与xml布局文件中的设置相同

还有一件事。我将此侦听器添加到
editButton

editButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        backButton.setCompoundDrawablesWithIntrinsicBounds(
        R.drawable.ic_back, 0, 0, 0);
    }
});
如果我点击它,现在图标会改变

那么,为什么在
ViewActivity
onCreate()
方法中图标不改变呢?

解决了! 问题是

android:drawableStart="@drawable/ic_done"
左工具栏按钮中
,和

android:drawableEnd="@drawable/ic_cancel"
右侧工具栏按钮中

我从layout_form.xml中移出了这两行。 我添加它们是因为Android Studio建议我添加它们,以便更好地支持从左到右的布局

android:drawableEnd="@drawable/ic_cancel"