ImageView
と比較して、クリック可能に設定されているImageButton
に何か大きな違いがあるのか疑問に思っています。
一方を他方よりも使用する理由はありますか? ImageButton
を唯一の可能なオプションとして残すImageView
のドロウアブルに制限はありますか?
クリック可能なImageView
over ImageButton
を選択すると、ボタンの機能が失われる可能性がありますか?
デフォルトのスタイルを除いて、違いはありません。 ImageButton
には、デフォルトでnull以外の背景があります。
[〜#〜] 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が説明するように、私は彼の答えに詳細を追加するだけです
クリックしたときのボタンクリックの効果は、imageButtonにはありますが、imageViewにはありません。