Difference between a clickable ImageView and ImageButton

前端 未结 3 1144

I\'m just wondering if there is any significant difference between an ImageView that\'s set to be clickable, compared with an ImageButton?

<
相关标签:
3条回答
  • 2020-11-29 20:27

    ImageButton is inherited from 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());
    }
    

    as @Micheal describe i just add details to his answer

    0 讨论(0)
  • 2020-11-29 20:33

    There's no differences, except default style. ImageButton has a non-null background by default.

    EDIT: Also, ImageButton.onSetAlpha() method always returns false, scaleType is set to center and it's always inflated as focusable.

    Here's ImageButton's default style:

     <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>
    
    0 讨论(0)
  • 2020-11-29 20:45

    The effect of a button click when I click is there for imagebutton but not for imageView.

    0 讨论(0)
提交回复
热议问题