我的布局中有一个TextInputEditText,我需要添加一个可绘制的末尾。可绘制的末端出现了,但我无法添加可绘制的填充末端。
下面是我尝试过的一段代码:
editText.setCompoundDrawablesWithIntrinsicBounds(null, null, getResources().getDrawable(R.drawable.error), null);
editText.setCompoundDrawablePadding(getResources().getDimensionPixelSize(R.dimen.image_padding));
由于getResources().getDrawable
已弃用,因此最好使用ContextCompat.getDrawable()
。如果drawablePadding
没有更改,并且不需要以编程方式处理,请尝试在xml
文件中设置它。
editText.setCompoundDrawablesWithIntrinsicBounds(
null,
null,
ContextCompat.getDrawable(context, R.drawable.error),
null
);
布局中的xml:
<android.support.design.widget.TextInputEditText
android:id="@+id/editText"
...
android:drawablePadding="@dimen/image_padding"
/>
如果您正在使用android矢量可绘制,并且希望对21以下的API具有向后兼容性,请添加以下代码段。
应用程序内构建级别:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
在应用程序类中:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
}