studio programacion herramientas fundamentos con avanzado aplicaciones android android-imageview imagebutton

programacion - manual de android en pdf



Diferencia entre ImageView e ImageButton seleccionables (3)

Me pregunto si hay alguna diferencia significativa entre un ImageView que se pueda hacer clic, en comparación con un ImageButton .

¿Hay alguna razón para usar uno sobre el otro? ¿Hay alguna restricción en el ImageButton para un ImageButton que deje a ImageView como la única opción posible?

¿ ImageButton funcionalidad de un botón si opto por hacer clic en ImageView sobre ImageButton ?


El efecto de un clic de botón cuando hago clic está allí para imagebutton pero no para imageView.


ImageButton se hereda de 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()); }

como @Micheal describo, solo agrego detalles a su respuesta


No hay diferencias, excepto el estilo predeterminado. ImageButton tiene un fondo no nulo por defecto.

EDITAR : Además, el método ImageButton.onSetAlpha() siempre devuelve falso, scaleType se establece en el center y siempre se infla como enfocable.

Aquí está el estilo predeterminado de 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>