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

问题描述 投票:0回答:2

我有一个矢量可绘制对象,我想将其设置为文本视图侧面可绘制对象。经过一番谷歌搜索后,有些人建议将我的矢量可绘制对象放入图层列表中,然后将图层列表可绘制对象设置为文本视图可绘制对象,现在我的代码是:

图层列表:

<?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 链接对我没有帮助。

java android vector
2个回答
1
投票

感谢您的关注,但是这个问题对我没有帮助。
但经过一番谷歌搜索后,我发现有关矢量可绘制的内容,我必须添加这一行

 static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}       

我的活动,现在我的应用程序运行良好


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-beta01'
implementation 'androidx.appcompat:appcompat-resources:1.1.0-beta01'

在文本视图中您可以使用

app:drawableLeftCompat
app:drawableStartCompat
© www.soinside.com 2019 - 2024. All rights reserved.