Подтвердить что ты не робот

Разница между кнопкой с изображением, ImageButton и интерактивным ImageView?

Есть ли разница между Button с изображением, ImageButton и clickable ImageView?

4b9b3361

Ответ 1

Это, вероятно, охватывает только часть различий, было бы полезно посмотреть на дерево Android файлов, чтобы точно узнать, что происходит.

У ImageButtons есть состояния push, где в качестве кликабельного изображения нет. Вы также не можете вызвать setText для ImageButton, вы можете с помощью обычной кнопки.

Все они проистекают из вида, но поиск следующей цепи расширений может помочь немного.

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

против

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

Ответ 2

Различия могут быть незначительными. Самый прямой способ понять это - начать с рассмотрения документов. Если вы посмотрите на docs для Button, вы увидите, что Button происходит от TextView. ImageButton, с другой стороны, получен из ImageView. В принципе, Button может иметь текст и доступен для кликов, тогда как ImageButton является более гибким в том, как вы устанавливаете изображение. Он имеет методы из своего базового класса ImageView, такого как setImageURI, который a Button не имеет. Одно из различий между этими двумя и просто обычным ImageView заключается в том, что вы можете иметь состояния кнопок, которые объясняются в обоих документах Button и ImageButton.

Ответ 3

ImageView = Display Images (android:src)

ImageButton = Diaplay Изображения как imageView и get click действуют как кнопка (android:src) и не могут установить для него текст.

Button = set text and (android:background)

Ответ 4

Еще один аспект, не упомянутый в предыдущих ответах, - это использование внутри (например) представления элемента списка. Если вы вставляете Button или ImageButton, остальная часть элемента списка не будет получать события касания. Но если вы используете ImageView, это будет.

Ответ 5

button instanceof ImageButton == false;
imageButton instanceof Button == false;
button instanceof TextView == true;
imageButton instanceof ImageView == true;