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иImageButtondocs.
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