如何在API 21以下的情况下将矢量图设置为EditText?

3

在我的应用中,我想要将矢量可绘制对象显示在EditText的右侧。
我从 Vector Asset(矢量资产)中将此可绘制对象添加到了Android Studio中!
但当运行应用时,会显示强制关闭错误。
XML 代码:

<EditText
        android:id="@+id/signInFrag_phoneEdt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:hint="@string/insertYourPhoneNumber"
        android:maxLines="1"
        android:drawableRight="@drawable/ic_phone_android"
        android:paddingLeft="@dimen/_10sdp"
        android:paddingRight="@dimen/_10sdp"
        android:singleLine="true"
        android:maxLength="11"
        android:inputType="phone"
        android:textColorHint="@color/colorLightGray"
        android:textSize="@dimen/_12sdp"
        android:drawableEnd="@drawable/ic_phone_android"/>

我在gradle.build文件的androiddefaultConfig中添加了vectorDrawables.useSupportLibrary = true

错误信息:

 Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_phone_android.xml from drawable resource ID #0x7f0700b3
    at android.content.res.Resources.loadDrawable(Resources.java:2096)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
    at android.widget.TextView.<init>(TextView.java:814)
    at android.widget.EditText.<init>(EditText.java:60)
    at androidx.appcompat.widget.AppCompatEditText.<init>(AppCompatEditText.java:73)
    at androidx.appcompat.widget.AppCompatEditText.<init>(AppCompatEditText.java:69)
    at androidx.app

我还在应用程序类中添加了这一行代码:AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

我应该如何解决这个问题?

2个回答

3

试一试

app:drawableEndCompat="@drawable/ic_phone_android"

应该将支持包含在build.gradle中:

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

1
将此行代码添加到您的MainActivity中。
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接