在android中的textview中设置矢量drawable到side drawable

时间:2017-02-05 08:14:46

标签: java android vector

我有一个矢量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的矢量d​​rawable,因为我现在使用它们与appcompatImageviews并且工作正常我的问题是得到矢量drawable并将它们设置为java中的textview drawable所以this链接不帮助我。

2 个答案:

答案 0 :(得分:1)

感谢您的关注,但this question请不要帮助我 但是经过一些谷歌搜索,我发现了矢量绘图,我必须添加这一行

 static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}       

到我的活动,现在我的应用程序正常运行

答案 1 :(得分:0)

  

在android的textview中将矢量可绘制设置为侧面可绘制

AppCompatTextView 现在支持app:drawableLeftCompatapp:drawableTopCompatapp:drawableRightCompatapp:drawableBottomCompatapp:drawableStartCompatapp:drawableEndCompat复合可绘制对象,支持向后移植的可绘制类型,例如 VectorDrawableCompat

将此内容添加到您的gradle文件中

implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'

您可以在文本视图中使用

app:drawableLeftCompat
app:drawableStartCompat