159

我只是想知道与 ?ImageView相比,设置为可点击的ImageButton?

有什么理由使用其中一个吗?作为唯一可能选项 的可ImageButton绘制对象是否有任何限制?ImageView

如果我选择可点击的ImageView,我可能会失去按钮的任何功能ImageButton吗?

4

3 回答 3

167

没有区别,除了默认样式。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>
于 2011-05-01T07:33:36.210 回答
26

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 所描述的,我只是在他的答案中添加了细节

于 2014-07-02T10:37:56.177 回答
7

当我单击按钮时,单击按钮的效果适用于 imagebutton,但不适用于 imageView。

于 2015-05-06T12:39:23.110 回答