Android 如何使用颜色选择器drawable为imageview预棒棒糖着色

Android 如何使用颜色选择器drawable为imageview预棒棒糖着色,android,android-support-library,Android,Android Support Library,我有一个imageview声明如下: <ImageView android:id="@+id/login_settings" android:layout_width="wrap_content" android:layout_height="0dp" android:tint="@drawable/cl_button_text" app:layout_constraintEnd_toEndOf="pa

我有一个imageview声明如下:

    <ImageView
        android:id="@+id/login_settings"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:tint="@drawable/cl_button_text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@+id/login_show_password"
        app:srcCompat="@drawable/ic_settings" />
当我将视图更改为:

    <ImageView
        android:id="@+id/login_settings"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:tint="@color/colorButtonNormal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@+id/login_show_password"
        app:srcCompat="@drawable/ic_settings" />

它工作正常(ofc颜色不会根据imageview的状态而改变)

有什么我能做的吗?最好是从xml,而不是以编程方式?

如中所示

android:tint

可以是颜色值,形式为“#rgb”、“#argb”、“#rrggbb”或“#aarggbb”

因此,您不能在xlm中使用可绘制资源


您可以尝试使用

尝试使用AppCompatImageView而不是ImageView和
app:tint
而不是
android:tint
我已经尝试过了,不起作用,我得到的消息是:
在包“我的包”中找不到属性“tint”的资源标识符
将“tint”更改为“background”不,这没有任何作用,drawable仍以其原始颜色(即黑色)显示,这是因为您使用的是常规Imageview而不是AppCompatImageView
Android.Views.InflateException: Binary XML file line #1: Error inflating class ImageView ---> Java.Lang.NumberFormatException: Invalid int: "res/drawable/cl_button_text.xml"
    <ImageView
        android:id="@+id/login_settings"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:tint="@color/colorButtonNormal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@+id/login_show_password"
        app:srcCompat="@drawable/ic_settings" />