I am doing it as below. This creates a 100x100 size image in the button independent of the input image.
drawable.bounds = Rect(0,0,100,100)
button.setCompoundDrawables(drawable, null, null, null)
Not using ScaleDrawable
either. Not using button.setCompoundDrawablesRelativeWithIntrinsicBounds()
solved my problem, as that seems to use intrinsic bounds (source image size) instead of the bounds you just set.