Tak nakonec jsem to vyřešil trochu jinak. Vytvořil jsem si teda rozšiřující třídu pro Button, ikdyž by to šlo použít přímo ve fragmentu či kdekoliv, kde je dostupný objekt s tlačítkem, ale při více tlačítkách bych zbytečně opakoval kód, takže ta nová třída je jednodušší a použitelnější. Ve všech třech constructorech pak volám tuto metodu:
private void setIcon() {
float density = getResources().getDisplayMetrics().density;
Drawable drawables[] = this.getCompoundDrawables();
for (Drawable drawable : drawables ) {
if (drawable != null) {
drawable.setBounds(0, 0, (int) (drawable.getIntrinsicWidth() / density), (int) (drawable.getIntrinsicHeight() / density));
}
}
this.setCompoundDrawables(drawables[0], drawables[1], drawables[2], drawables[3]);
}