Android-imageView don';KitKat上没有颜色强调颜色

Android-imageView don';KitKat上没有颜色强调颜色,android,imageview,android-6.0-marshmallow,android-4.4-kitkat,android-5.1.1-lollipop,Android,Imageview,Android 6.0 Marshmallow,Android 4.4 Kitkat,Android 5.1.1 Lollipop,我制作了两个imageView,当点击时,它们采用colorAccent的颜色。这似乎对棒棒糖和棉花糖有效,但对KitKat无效。另外,当它们没有被点击时,它们应该是灰色的,但在Kitkat上它们总是黑色的。下面是一个例子: 这是我的密码: COLORS.XML <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <

我制作了两个
imageView
,当点击时,它们采用
colorAccent
的颜色。这似乎对棒棒糖和棉花糖有效,但对KitKat无效。另外,当它们没有被点击时,它们应该是灰色的,但在Kitkat上它们总是黑色的。下面是一个例子:

这是我的密码:
COLORS.XML

<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="itemNotSelected">#bdbdbd</color> <!-- this is GREY -->
vector_repeat_all.xml:

<vector android:height="96dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="96dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/colorAccent" android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z"/>


如何解决此问题?

将所需颜色移动到
android:tint
,并让路径为任何纯色

<vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:tint="?colorAccent"
    android:height="96dp"
    android:viewportHeight="24.0"
    android:viewportWidth="24.0"
    android:width="96dp">
    <path android:fillColor="#FF000000" android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z"/>
</vector>

这将适用于API 21及以上的开箱即用和API 21以下的情况,如果:

  • 您可以通过AppCompat膨胀的XML布局中的
    ImageView
    上的
    app:srccomat
    分配图像
  • 在AppCompat充气的
    ImageView上调用
    setImageResource(int)
  • 在新的AppCompatImageView(…)上调用
    setImageResource(int)

来源:AppCompat内部就是这样做的。

将所需颜色移动到
android:tint
,并让路径为任何纯色

<vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:tint="?colorAccent"
    android:height="96dp"
    android:viewportHeight="24.0"
    android:viewportWidth="24.0"
    android:width="96dp">
    <path android:fillColor="#FF000000" android:pathData="M7,7h10v3l4,-4 -4,-4v3L5,5v6h2L7,7zM17,17L7,17v-3l-4,4 4,4v-3h12v-6h-2v4z"/>
</vector>

这将适用于API 21及以上的开箱即用和API 21以下的情况,如果:

  • 您可以通过AppCompat膨胀的XML布局中的
    ImageView
    上的
    app:srccomat
    分配图像
  • 在AppCompat充气的
    ImageView上调用
    setImageResource(int)
  • 在新的AppCompatImageView(…)上调用
    setImageResource(int)

来源:AppCompat内部就是这样做的。

Kit Kat不支持矢量绘图。你在使用支持库吗?是的,事实上我可以看到矢量绘图,即使不是在设计的colorKit中Kat不支持矢量绘图。你在使用支持库吗?是的,事实上我可以看到矢量绘图,即使不是设计的颜色。你写了
新的ImageButton(…)
?将其修复为
新建AppCompatImageButton(…)
。我在support libs 24.1.1版上对其进行了测试。您使用的是什么版本?您是否编写了
新图像按钮(…)
?将其修复为
新建AppCompatImageButton(…)
。我在support libs 24.1.1版上对其进行了测试。你用什么版本?