xml图标在apilvl 24&25下以白色显示

时间:2018-09-15 16:43:43

标签: android vector-graphics

这次我有一个奇怪的...我正在使用抽屉Vector Drawables(第一次)。我在build.gradle中设置了我想使用支持库来显示我的矢量。现在,根据API级别,图标会更改其颜色。在Android-Studio预览中,一切正常,如预期的那样黑。

我阅读了developers.android.com的教程和thefuntasty.com的教程。提示和提示都无济于事。

第一张图片显示了API级别为24的抽屉,第二张图片显示了API级别27。在API级别23下也发生了同样的情况。我的装有Android 7.0的真实手机(Huawei P9 plus)显示白色图标。

API-Level-24

API-Level-28

相关build.gradle部分:

android {
    compileSdkVersion 26
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "..."
        minSdkVersion 24
        targetSdkVersion 26 // An internal room component does depend on it, so I must not change it.
        ...

        // User added
        vectorDrawables.useSupportLibrary = true
}
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    api 'com.android.support:appcompat-v7:26.1.0'
    api 'com.android.support:design:26.1.0'
    api 'com.android.support:support-vector-drawable:26.1.0'
    api 'com.google.android.gms:play-services-maps:15.0.1'

    ... (Room & other components)
}

这里也是向量之一的代码:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:autoMirrored="true"
    android:viewportHeight="24.0"
    android:viewportWidth="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
</vector>

在抽屉布局文件中被引用:

<item
     android:id="@+id/nav_main"
     android:icon="@drawable/ic_home_black_24dp"
     android:title="@string/nav_bar_reverse_wherigos"
     android:tint="@color/text_color_primary" />

编辑: 我对这个问题有更深入的了解。现在我可以说navigationView.getItemIconTintList().getDefaultColor()的值在API 24和27上是不同的。当我理解为什么会这样时,我的问题就解决了,以便可以对布局进行适当的更改... < / p>

编辑2: 我可以使用app:itemIconTint="#000000"navigationView.setItemIconTintList(null);覆盖所有API级别的颜色,但是选择后该图标始终为黑色,而不是蓝色(如图所示)。另外,我很担心为什么默认值会随着API级别而更改。

0 个答案:

没有答案