Is it possible to set drawableLeft programmatically?

android

Solution

Yes, use setCompoundDrawablesWithIntrinsicBounds

and define the drawable for the first parameter, then 0 for all the others.

The code should look something like this:

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

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

If your drawable was created in code as well then you need to use the other setCompoundDrawablesWithIntrinsicBounds method which takes 4 drawables, and pass null for all but the left.

Problem

In XML we can set drawableLeft using this way: ``` <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" /> ``` How to do same thing programmatically?

Original source