某些图标未在某些 android 设备中显示

Posted

技术标签:

【中文标题】某些图标未在某些 android 设备中显示【英文标题】:Some of the icons are not showing in some android devices 【发布时间】:2019-10-29 01:02:49 【问题描述】:

我正在使用正常的方式在我的ImageView in android 中设置矢量图标。在某些设备中,图标不可见,出现空白,不知道为什么会发生。这仅在 android pie 设备中发生

这些是我用来设置图标的一些代码。图标在调试设备中完美显示,但在发布后一些设备会产生问题。

<LinearLayout 
 android:layout_
  android:padding="5sp"
  android:gravity="center"
  android:id="@+id/home_dr"
  android:layout_marginBottom="5sp"
  android:orientation="horizontal"
  android:layout_>

<ImageView android:layout_
   android:padding="13sp"
   android:gravity="center"
   android:tint="@color/white"
   android:src="@drawable/ic_home"
   android:layout_/>

<TextView 
  android:layout_
  android:layout_marginStart="10sp"
  android:text="Home"
  android:textColor="@color/white"
  android:textStyle="bold"
  android:gravity="center|start"
  android:layout_/>
</LinearLayout>

野兔是一些你可以很好理解的图像

【问题讨论】:

***.com/a/46690681/6120487 它是唯一的布局还是您有不同的布局版本,如layout-v21 等。请检查这种情况。 不,没有不同的布局。感谢@LeoLeontev,但这不是解决方案兄弟 【参考方案1】:

将此添加到您的应用程序 buil.gradle 和 defaultConfig 标签内:

vectorDrawables.useSupportLibrary = true

然后将AppCompatImageViewapp:srcCompat 一起使用。像这样:

            <android.support.v7.widget.AppCompatImageView
           android:layout_
                   android:padding="13sp"
                   android:gravity="center"
                   android:tint="@color/white"
                   app:srcCompat="@drawable/ic_home"
                   android:layout_ />

【讨论】:

感谢所有人,但这不起作用。这可能是android studio过时版本的问题吗?或电话具体问题?【参考方案2】:

如果是矢量图标,您应该在图像视图中将它们设置为 srcCompact 而不是 src。

app:srcCompat="@drawable/your_vector_name"

在您的 build.gradle 中,检查您是否启用了矢量可绘制对象。

android 
defaultConfig 
    vectorDrawables.useSupportLibrary = true


对于 API 级别 21 suppory,将其添加到您的活动 AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);

【讨论】:

以上是关于某些图标未在某些 android 设备中显示的主要内容,如果未能解决你的问题,请参考以下文章

Android 活动未在某些设备上启动(错误膨胀类)

Android 推送通知横幅未在某些设备中显示

字体真棒:一些图标未在移动设备上显示(iPhone iOS)

Android 通知图标在某些设备上为空白

App Tracking Transparency 消息未在某些设备中显示

当应用程序未运行时,GCM 推送通知未在某些设备中显示