Разница между кликабельным ImageView и ImageButton
мне просто интересно, есть ли какая-либо существенная разница между ImageView
это настроено на кликабельность, по сравнению с ImageButton
?
есть ли причины для использования одного над другим? Есть ли какие-либо ограничения на рисование для ImageButton
оставляет ImageView
как единственный возможный вариант?
Я, возможно, потеряю любую функциональность кнопки, если я выберу кликабельный ImageView
over ImageButton
?
3 ответа:
нет никаких различий, кроме стиля по умолчанию.
ImageButton
есть ненулевой фон по умолчанию.EDIT: кроме того,
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 описать я просто добавить детали к его ответу