我只是想知道ImageView
設置爲可點擊與ImageButton
相比是否有任何顯着差異?可點擊的ImageView和ImageButton之間的區別
是否有任何理由使用其中一種? ImageButton
是否有任何限制作爲唯一可能的選項的可繪製?
如果我選擇可點擊的ImageView
而不是ImageButton
,我可能會失去按鈕的任何功能嗎?
我只是想知道ImageView
設置爲可點擊與ImageButton
相比是否有任何顯着差異?可點擊的ImageView和ImageButton之間的區別
是否有任何理由使用其中一種? ImageButton
是否有任何限制作爲唯一可能的選項的可繪製?
如果我選擇可點擊的ImageView
而不是ImageButton
,我可能會失去按鈕的任何功能嗎?
除了默認樣式,沒有區別。 ImageButton
默認情況下具有非空背景。
編輯:另外,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形容我只是添加細節,他的回答
按鈕的作用點擊時,我點擊是爲了圖像按鈕,但不是爲imageView。
感謝您的回答。當我自己瀏覽代碼時,你給了我更多的東西。我想一天結束,2之間的選擇將取決於您可以使用多少默認屬性,而無需任何定製。 – yjw 2011-05-01 15:24:17
不客氣!是的,確實沒有太大的差別,所以我認爲選擇是在按鈕和不按鈕之間。 – Michael 2011-05-01 16:29:23
實際上,根據我的經驗,兩者之間的另一個區別是,如果您想將可點擊的按鈕放入ListView的單元格中,同時將單元格本身保持爲可點擊,則使用Imageview會更好。當TextViews和ImageViews不用時,EditTexts和ImageButton似乎會消耗觸摸事件。 – 2012-11-29 11:36:04