67 votes

Différence entre bouton avec image, ImageButton, et ImageView cliquable ?

Y a-t-il une différence entre Button avec image, ImageButton et cliquable ImageView ?

86voto

Frank Sposaro Points 4863

Ceci ne couvre probablement qu'une partie des différences, il serait utile de regarder l'arbre des sources d'Android pour voir exactement ce qui se passe.

Les ImageButtons ont des états de poussée, ce qui n'est pas le cas d'une image cliquable. Vous ne pouvez pas non plus appeler setText pour un ImageButton, alors que vous pouvez le faire avec un bouton normal.

Ils dérivent tous de la vue, mais l'examen de la chaîne d'extension suivante peut aider un peu.

java.lang.Object
↳ android.view.View
   ↳ android.widget.ImageView
       ↳ android.widget.ImageButton

par rapport à

java.lang.Object
↳ android.view.View
   ↳ android.widget.TextView
       ↳ android.widget.Button

12voto

kabuko Points 23166

Les différences peuvent être subtiles. La façon la plus directe de comprendre cela est de commencer par regarder la documentation. Si vous regardez la page docs pour Button vous pouvez constater que Button est dérivé de TextView . ImageButton d'autre part, est dérivé de ImageView . Ainsi, fondamentalement, un Button peut contenir du texte et est cliquable, alors qu'un ImageButton est un peu plus souple dans la manière de définir l'image. Il dispose de méthodes issues de son ImageView classe de base comme setImageURI dont un Button ne le fait pas. L'une des différences entre ces deux types de produits et une simple ImageView est qu'il est possible d'avoir des états de bouton, ce qui est expliqué dans les deux documents suivants Button y ImageButton docs.

9voto

Mohanish Points 383
ImageView = Display Images (android:src)

ImageButton = Diaplay Images comme imageView y get click effet en tant que bouton (android:src) et ne peut pas lui attribuer de texte.

Button = set text and (android:background)

4voto

Groovee60 Points 1

Un autre aspect qui n'a pas été mentionné dans les réponses précédentes est l'utilisation au sein (par exemple) d'une liste d'éléments. Si vous intégrez un bouton ou un ImageButton, le reste de l'élément de liste ne recevra pas d'événements tactiles. Mais si vous utilisez ImageView, il le recevra.

0voto

Shwarz Andrei Points 355
button instanceof ImageButton == false;
imageButton instanceof Button == false;
button instanceof TextView == true;
imageButton instanceof ImageView == true;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X