Android ImageView 小部件使用 app:srcCompat

Android Widget use app:srcCompat for ImageView

我有带 ImageView 的小部件。当我使用 android:srcImageView 设置图像时一切正常,但是当我使用 app:srcCompat 图片不显示。 有没有办法在 Android 小部件中使用 app:srcCompat?

在我的项目中设置:

xmlns:app="http://schemas.android.com/apk/res-auto"

android {  
 defaultConfig {  
    vectorDrawables.useSupportLibrary = true  
    }
}


  minSdkVersion 24
  targetSdkVersion 29

如果 <ImageView>

,请尝试 <androidx.appcompat.widget.AppCompatImageView>

我认为这是不可能的。 ImageView 实际上没有 app:srcCompat 属性(参见 here)。 您通常能够使用它的原因是,当您使用 appcompat 库时,ImageView 会自动替换为 AppCompatImageView。然而,这不适用于小部件,因为它们基于 RemoteViews。如您所见,对于 RemoteViews,您只能使用 ImageView 而不能使用 AppCompatImageView。即使您将 appcompat 库添加到您自己的应用程序,问题是您的小部件的 RemoteViews 对象将被传递给将显示小部件的应用程序的进程(通常是启动器),我们不能假设 appcompat 到可用。

您是否因为矢量资源问题而尝试使用 appcompat?如果您描述了您遇到的问题,也许我们可以找到一种方法使其与常规 ImageView 一起使用。