我有一个矢量drawable,我想设置为textview两侧Drawable。经过一些谷歌搜索后,一些人建议将我的矢量绘制在layerList中,然后将图层列表绘制为textview drawables,现在我的代码是:
layerList:
<?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的矢量drawable,因为我现在使用它们与appcompatImageviews并且工作正常我的问题是得到矢量drawable并将它们设置为java中的textview drawable所以this链接不帮助我。
答案 0 :(得分:1)
感谢您的关注,但this question请不要帮助我 但是经过一些谷歌搜索,我发现了矢量绘图,我必须添加这一行
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
到我的活动,现在我的应用程序正常运行
答案 1 :(得分:0)
在android的textview中将矢量可绘制设置为侧面可绘制
AppCompatTextView 现在支持app:drawableLeftCompat
,app:drawableTopCompat
,app:drawableRightCompat
,app:drawableBottomCompat
,app:drawableStartCompat
和app:drawableEndCompat
复合可绘制对象,支持向后移植的可绘制类型,例如 VectorDrawableCompat 。
将此内容添加到您的gradle文件中
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
您可以在文本视图中使用
app:drawableLeftCompat
app:drawableStartCompat