Изображение не отображается, так как вы не указали границы, поэтому у вас есть 2 варианта здесь.
1-й метод
Используйте setCompoundDrawablesWithIntrinsicBounds
метод, как показано ниже
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
btn. setCompoundDrawablesWithIntrinsicBounds(myDrawable, null, null, null);
2-й метод
Вы можете применить границы для рисования перед применением к TextView, как показано ниже
Drawable myDrawable = getResources().getDrawable(R.drawable.btn);
myDrawable.setBounds( 0, 0, myDrawable.getIntrinsicWidth(), myDrawable.getIntrinsicHeight());
btn.setCompoundDrawables(myDrawable, null, null, null);
Вот и все.
(..)WithIntrinsicBounds
необходимо вызвать вариант названного метода . Кроме того, после этого вызоваpadding
составной Drawable должен быть установлен, чтобы вызвать эффект