android - studio - ¿Diferencia entre botón con imagen, ImageButton e ImageView clicable?
imagebutton android studio (5)
Esto probablemente solo cubra parte de las diferencias, sería útil mirar el árbol de fuente de Android para ver exactamente qué está pasando.
ImageButtons tiene estados de inserción, mientras que una imagen clicable no lo hace. Tampoco puedes llamar a setText para ImageButton, puedes hacerlo con un botón normal.
Todos ellos se derivan de la vista, pero mirar la siguiente cadena extiende puede ayudar un poco.
java.lang.Object
↳ android.view.View
↳ android.widget.ImageView
↳ android.widget.ImageButton
versus
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
¿Hay alguna diferencia entre Button
with image, ImageButton
y ImageView
ImageButton
?
Las diferencias pueden ser sutiles. La forma más directa de entender esto es comenzar mirando los documentos. Si miras los documentos para Button , puedes ver que Button
se deriva de TextView
. ImageButton
por otro lado se deriva de ImageView
. ImageButton
, un Button
puede tener texto y se puede hacer clic en él, mientras que un ImageButton
es un poco más flexible en la forma de configurar la imagen. Tiene métodos de su clase base de ImageView
como setImageURI
que un Button
no tiene. Una de las diferencias entre estos dos y solo un simple ImageView
es que puede tener estados de botón que se explican en los documentos Button
y ImageButton
.
Otro aspecto no mencionado en las respuestas anteriores es el uso dentro de (por ejemplo) una vista de elemento de lista. Si inserta un botón o ImageButton, el resto del elemento de la lista no recibirá eventos táctiles. Pero si usa ImageView, lo hará.
ImageView = Display Images (android:src)
ImageButton = Diaplay
Images como imageView
y get click
efecto de get click
como botón (android:src)
y no puede establecer texto en él.
Button = set text and (android:background)
button instanceof ImageButton == false;
imageButton instanceof Button == false;
button instanceof TextView == true;
imageButton instanceof ImageView == true;