在 API 级别 21 之前使用带有 android:drawableTop 的矢量图像

Using vector images with android:drawableTop before API level 21

我正在开发一个需要 运行 在 Android 设备上一直到 Android Gingerbread (2.3) 的应用程序并且似乎 运行显示 SVG 图像的一些问题。

我明白,支持库允许我通过在我的应用程序级别中删除此行来使用矢量图像 build.gradle:

vectorDrawables.useSupportLibrary = true

然后我可以使用各种支持库 类 或 android:srcCompatImageView

中显示 SVG

你这里的问题是我没有使用 ImageView 来显示我的 SVG。我正在使用带有 android:drawableTop 属性的 TextView 来显示我的 SVG,如:

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/text_no_notes"
        android:textAlignment="center"
        android:drawableTop="@drawable/ic_notepad"
        android:id="@+id/textView"
        android:textAppearance="@style/TextAppearance.AppCompat.Medium.Inverse" />

由于 android:drawableTop 不使用支持库矢量图像,应用程序在 "L" 之前的设备上 运行 崩溃。有没有我可以用来让 android:drawableTop 工作的解决方法,或者我只是把 TextView 分开并使用 android:srcCompat?

系统TextView无法使用。 (相关源码:5.1.1 / 4.4.4

您可以使用自定义视图 class,但此时我认为您最好使用带有 ImageView 和 TextView 的 LinearLayout。