2017-03-11 2 views
1

Comment puis-je définir une icône png sur un bouton dans MainActivity? Je dois changer cette icône plusieurs fois pendant le programme, donc je ne peux pas définir l'image dans le code xml.Android Studio: PNG on Button

Mais dans le fichier XML, il est au centre du bouton, il est donc parfait et bien étiré

android:drawableTop="@drawable/x" 

Dans le MainActivity Je ne sais pas quoi faire

bt.setCompoundDrawablesWithIntrinsicBounds(null, x, null, null); 

Répondre

1

Utilisez le ci-dessous le code:

Drawable top = getResources().getDrawable(R.drawable.x); 
bt.setCompoundDrawablesWithIntrinsicBounds(null, top , null, null); 

Pour ajouter l'image au centre, vous pouvez utiliser ImageButton:

Ajoutez le bouton image ci-dessous à la place de votre bouton dans la mise en page xml.

<ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imageButton" /> 

Obtenez le ImageButton et mis drawable:

ImageButton ib = (ImageButton)findViewById(R.id.imageButton); 
ib.setImageResource(R.drawable.x); 

Hope this helps.

+0

Existe-t-il un moyen de changer la largeur et la hauteur? et comment puis-je mettre cette image au centre du bouton? –

+0

Vous pouvez utiliser imageButton. Vérifiez la réponse mise à jour. – tahsinRupam

0

Si vous ciblez niveau de l'API 17 ou plus, vous pouvez accomplir cette tâche avec une seule ligne simple:

bt.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.x , 0, 0); 

Cette méthode prend des ressources étirables ID est comme arguments, donc il n'y a pas besoin d'obtenir le étirables vous en utilisant getDrawable(). Passer un 0 comme argument signifie qu'aucune icône de ce côté.

Bonne chance!

+0

comment puis-je mettre cette image au centre du bouton? –