我只是想知道设置为可点击的
ImageView
与 ImageButton
相比是否有任何显着差异?
有什么理由使用其中一种而不是另一种吗?
ImageButton
的可绘制对象是否有任何限制,使得 ImageView
成为唯一可能的选项?
如果我选择可点击的
ImageView
而不是 ImageButton
,我是否可能会失去按钮的任何功能?
除了默认样式外,没有任何区别。
ImageButton
默认情况下具有非空背景。
编辑:此外,
ImageButton.onSetAlpha()
方法始终返回false,scaleType
设置为center
并且它始终膨胀为可聚焦。
这是
ImageButton
的默认样式:
<style name="Widget.ImageButton">
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:scaleType">center</item>
<item name="android:background">@android:drawable/btn_default</item>
</style>
ImageButton继承自ImageView
public class ImageButton extends ImageView {
public ImageButton(Context context) {
this(context, null);
}
public ImageButton(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.imageButtonStyle);
}
public ImageButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setFocusable(true);
}
@Override
protected boolean onSetAlpha(int alpha) {
return false;
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
event.setClassName(ImageButton.class.getName());
}
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
info.setClassName(ImageButton.class.getName());
}
正如@Micheal 所描述的,我只是在他的答案中添加了详细信息
单击按钮时的效果对于 imagebutton 有,但对于 imageView 没有。
如果你愿意,你可以给按钮点击效果作为背景。 ImageButton默认有效果。