可点击的ImageView和ImageButton之间的区别

我只是想知道是否有一个ImageView被设置为可点击,与ImageButton比较之间有任何显着差异?

是否有任何理由使用其中一个? ImageButton的drawable是否有任何限制,使ImageView成为唯一可能的选项?

如果我selectImageButton的可点击的ImageView ,我可能会失去一个button的function吗?

没有区别,除了默认的风格。 ImageButton默认情况下具有非空背景。

编辑 :此外, ImageButton.onSetAlpha()方法始终返回false, scaleType设置为center ,并始终充气为可scaleType

这里是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从ImageViewinheritance

 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描述我只是添加细节到他的答案

单击button时单击的效果是为imagebutton而不是imageView。