La imagen no se muestra porque no especificó los límites, por lo que tiene 2 opciones aquí.
1er método
Use el setCompoundDrawablesWithIntrinsicBounds
método, como se muestra a continuación
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
btn. setCompoundDrawablesWithIntrinsicBounds(myDrawable, null, null, null);
2do método
Puede aplicar límites al dibujable antes de aplicar a TextView, como se muestra a continuación
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
myDrawable.setBounds( 0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());
btn.setCompoundDrawables(myDrawable, null, null, null);
Eso es.
(..)WithIntrinsicBounds
debe llamarse a la variante del método nombrado . En una nota al margen,padding
para que el Compuesto Dibujable se debe configurar después de esta llamada para causar un efecto