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



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

693   5  

5 ответов:

это, вероятно, охватывает только часть различий, было бы полезно на самом деле посмотреть на исходное дерево 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

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

ImageView = Display Images (android:src)

ImageButton = Diaplay картинки, как imageView и get click эффект как кнопка (android:src) и не может установить текст к нему.

Button = set text and (android:background)

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

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

Comments

    Ничего не найдено.