可点击的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。