在XML中,我们可以使用这种方式设置drawableLeft:
<Button
android:id="@+id/previewBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/white_btn"
android:drawableLeft="@drawable/green_circle"
android:drawablePadding="16dp"
android:text="Button" />
如何以编程方式做同样的事情?
答案 0 :(得分:18)
是的,请使用setCompoundDrawablesWithIntrinsicBounds
并为第一个参数定义drawable,然后为所有其他参数定义0。
代码看起来像这样:
Button b = findViewById(R.id.myButton);
b.setCompoundDrawablesWithIntrinsicBounds(R.drawable.myDrawable, 0, 0, 0);
如果你的drawable也是在代码中创建的,那么你需要使用另外的setCompoundDrawablesWithIntrinsicBounds方法,该方法需要4个drawables,并且除了左边的所有方法都传递null。
答案 1 :(得分:2)
使用的方法是setCompoundDrawablesWithIntrinsicBounds。此方法采用所有四个可绘制选项(左,上,右,下),因此如果您只想留下,请将null
传递给其他人。