我有一个矢量可绘制对象,我想将其设置为文本视图侧面可绘制对象。经过一番谷歌搜索后,有些人建议将我的矢量可绘制对象放入图层列表中,然后将图层列表可绘制对象设置为文本视图可绘制对象,现在我的代码是:
图层列表:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_sort_up"/> //vector drawable
</layer-list>
在java中获取drawable:
Drawable ArrowDrawable = AppCompatResources.getDrawable(this, R.drawable.selected_arrow);
当我在 Android 6 设备上运行我的代码时,它工作正常,但当我在 Android 4.4 上运行它时,我收到此错误消息:
android.content.res.Resources$NotFoundException: File res/drawable/selected_arrow.xml from drawable resource ID #0x7f0200c1
有人可以帮忙解决这个问题吗?
更新
我的问题是不要在低于 Android 5 的版本中使用矢量可绘制对象,因为我现在将它们与 appcompatImageviews 一起使用并且工作正常。我的问题是获取矢量可绘制对象并将它们设置为 java 中的文本视图可绘制对象,所以 this 链接对我没有帮助。
感谢您的关注,但是这个问题对我没有帮助。
但经过一番谷歌搜索后,我发现有关矢量可绘制的内容,我必须添加这一行
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
我的活动,现在我的应用程序运行良好
在android中的textview中将矢量可绘制设置为侧面可绘制
AppCompatTextView 现在支持
app:drawableLeftCompat
、app:drawableTopCompat
、app:drawableRightCompat
、app:drawableBottomCompat
、app:drawableStartCompat
和 app:drawableEndCompat
复合可绘制对象,支持向后移植的可绘制类型,例如 VectorDrawableCompat。
将其包含在您的 gradle 文件中
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
implementation 'androidx.appcompat:appcompat-resources:1.1.0-beta01'
在文本视图中您可以使用
app:drawableLeftCompat
app:drawableStartCompat