web-dev-qa-db-fra.com

Comment définir la propriété ImageButton de app: srcCompat = "@ drawable/pic" par programme?

Comment définir la propriété ImageButton de 

app:srcCompat="@drawable/pic"

par programmation?

Quelque chose comme myImageButton.setBackgroundResource(R.drawable.eng2); mais la propriété de app:srcCompat.

42
Isaac

Tout d’abord, assurez-vous que vous avez affaire à AppCompatImageView et non "normal" ImageView:

AppCompatImageView iv = (AppCompatImageView)findViewById(....);

alors vous pouvez utiliser

iv.setImageResource(R.drawable.pic);

Voir autres méthodes publiques dans la documentation .

18
Marcin Orlowski

Utiliser setImageResource() devrait extraire ses ressources de manière compatible avec les versions antérieures sans aucun effort supplémentaire requis.

Toutefois, si vous utilisez setImageDrawable(), ImageView/ImageButton ne vous aidera pas avec une compatibilité ascendante et il vous appartient de fournir une fonctionnalité rétrocompatible, ce qui est important pour. si vous utilisez VectorDrawables. Les éléments suivants vont charger et définir un dessinable de telle manière:

val drawable = AppCompatResources.getDrawable(context, resourceId)
image.setImageDrawable(drawable)
0
Tom