【发布时间】:2012-03-14 07:03:26
【问题描述】:
Button with image, ImageButton 和 clickable ImageView 有什么区别吗?
【问题讨论】:
标签: android button imagebutton
Button with image, ImageButton 和 clickable ImageView 有什么区别吗?
【问题讨论】:
标签: android button imagebutton
这可能只涵盖了部分差异,实际查看 Android 源代码树以了解发生了什么会有所帮助。
ImageButtons 具有推送状态,而可点击图像则没有。 你也不能为 ImageButton 调用 setText,你可以用一个普通的按钮。
它们都来自视图,但查看以下扩展链可能会有所帮助。
java.lang.Object
↳ android.view.View
↳ android.widget.ImageView
↳ android.widget.ImageButton
对
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
【讨论】:
差异可能很微妙。理解这一点的最直接方法是从查看文档开始。如果您查看docs for Button,您会发现Button 派生自TextView。另一方面,ImageButton 派生自 ImageView。所以从根本上说,Button 可以有文本并且是可点击的,而ImageButton 在设置图像方面更灵活一些。它具有来自其ImageView 基类的方法,例如setImageURI,而Button 没有。这两者与普通的ImageView 之间的区别之一是您可以拥有按钮状态,这在Button 和ImageButton 文档中都有说明。
【讨论】:
ImageView = Display Images (android:src)
ImageButton = Diaplay 图像为imageView 和get click 效果为按钮(android:src),并且无法为其设置文本。
Button = set text and (android:background)
【讨论】:
前面的答案中没有提到的另一个方面是(例如)列表项视图中的用法。如果您嵌入了 Button 或 ImageButton,则列表项的其余部分将不会接收到触摸事件。但是如果你使用 ImageView,它会的。
【讨论】:
ImageButton 遇到了这个问题,但Button 没有图像背景
button instanceof ImageButton == false;
imageButton instanceof Button == false;
button instanceof TextView == true;
imageButton instanceof ImageView == true;
【讨论】: