由于遇到需求, 需要动态设置 TextView drawableLeft 的图片, 因此在这做一些笔记。

博主博客

XML

<TextView
    android:id="@+id/demo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@mipmap/abc"
    android:drawableRight="@mipmap/abc"
    android:drawableTop="@mipmap/abc"
    android:drawableBottom="@mipmap/abc"
    android:drawablePadding="5dp"
    android:text="abc" />
  • android:drawableLeft 在文本框内文本的左边绘制指定图像
  • android:drawableRight 在文本框内文本的右边绘制指定图像
  • android:drawableTop 在文本框内文本的顶端绘制指定图像
  • android:drawableBottom 在文本框内文本的底端绘制指定图像
  • android:drawablePadding 设置文本框内文本与图形之间的间距

JAVA

Drawable abc= getResources().getDrawable(R.mipmap.abc);
// 调用 setCompoundDrawables 时,必须调用 Drawable.setBounds() 方法,否则图片不显示
abc.setBounds(0, 0, abc.getMinimumWidth(), abc.getMinimumHeight());
demo.setCompoundDrawables(abc, null, null, null);

setCompoundDrawables(leftDrawable, topDrawable, rightDrawable, bottomDrawable) 在文本框内文本的四周绘制指定图像。