web-dev-qa-db-ja.com

Button with image、ImageButton、およびクリック可能なImageViewの違いは?

Button with image、ImageButton、およびクリック可能なImageViewに違いはありますか?

67
Snake

これはおそらく違いの一部のみをカバーしているので、実際にAndroidソースツリーを見て正確に何が起こっているのかを確認すると役立ちます。

ImageButtonsにはプッシュ状態がありますが、クリック可能な画像にはありません。 ImageButtonのsetTextを呼び出すことも、通常のボタンを使用して呼び出すこともできません。

これらはすべてビューから派生していますが、次の拡張チェーンを見ると少し役立つかもしれません。

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
85
Frank Sposaro

違いは微妙です。これを理解する最も直接的な方法は、ドキュメントを見ることから始めることです。 Buttonのドキュメント を見ると、ButtonTextViewから派生していることがわかります。 ImageButton 一方、ImageViewから派生します。基本的に、Buttonはテキストを持つことができ、クリック可能ですが、ImageButtonは画像の設定方法が少し柔軟です。 ImageViewにはないsetImageURIのようなButton基本クラスのメソッドがあります。これら2つと単なるImageViewの違いの1つは、ButtonImageButtonの両方のドキュメントで説明されているボタンの状態を持つことができることです。

12
kabuko
ImageView = Display Images (Android:src)

ImageButton = Diaplayとしての画像imageViewおよびget clickはボタン(Android:src)として効果があり、テキストを設定できません。

Button = set text and (Android:background)
9
Mohanish

前の回答で言及されていないもう1つの側面は、リストアイテムビュー内での使用方法です。 ButtonまたはImageButtonを埋め込んだ場合、リストアイテムの残りはタッチイベントを受け取りません。ただし、ImageViewを使用する場合は使用します。

4
Groovee60
button instanceof ImageButton == false;
imageButton instanceof Button == false;
button instanceof TextView == true;
imageButton instanceof ImageView == true;
0
Shwarz Andrei