繁体   English   中英

在android中的textview中将vector drawable设置为side drawable

[英]set vector drawable to side drawable in textview in android

我有一个矢量可绘制至我想设置为 textview 侧可绘制。 经过一些谷歌搜索,一些人建议将我的矢量 drawable 放在 layerList 中,然后将图层列表 drawable 设置为 textview drawables,现在我的代码是:

图层列表:

<?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 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 中的 textview 可绘制对象,因此链接对我没有帮助。

感谢您的关注,但这个问题对我没有帮助。
但经过一些谷歌搜索后,我发现我必须添加这一行

 static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}       

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

在android中的textview中将vector drawable设置为side drawable

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

将此包含在您的 gradle 文件中

implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
implementation 'androidx.appcompat:appcompat-resources:1.1.0-beta01'

在您的文本视图中,您可以使用

app:drawableLeftCompat
app:drawableStartCompat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM