6

在 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" />

如何以编程方式做同样的事情?

4

2 回答 2

19

是的,使用setCompoundDrawablesWithIntrinsicBounds

并为第一个参数定义drawable,然后为所有其他参数定义0。

代码应如下所示:

Button b = findViewById(R.id.myButton);

b.setCompoundDrawablesWithIntrinsicBounds(R.drawable.myDrawable, 0, 0, 0);

如果您的drawable也是在代码中创建的,那么您需要使用另一个setCompoundDrawablesWithIntrinsicBounds方法,该方法需要4个drawable,并为除了左边的所有内容传递null。

于 2012-05-08T20:49:14.223 回答
2

使用的方法是setCompoundDrawablesWithIntrinsicBounds。此方法采用所有四个可绘制选项(左、上、右、下),因此如果您只想要左,请传入null其他选项。

于 2012-05-08T20:50:22.883 回答