2015-06-24 121 views
0

我在佈局中有一些ImageButtons。圖像資源是32x32像素。它們都具有相同的屬性:ImageButton在第一次點擊時並不總是可點擊

  <ImageButton 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/ibButton1" 
       android:clickable="true" 
       android:focusable="false" 
       android:focusableInTouchMode="false" 
       android:layout_weight="0" 
       android:src="@drawable/not_selected" 
       android:layout_gravity="center_vertical" 
       android:background="@null"/> 

在我的片段,我做:

final ImageButton button1 = (ImageButton)view.findViewById(R.id.ibButton1); 
    button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      isSelected = !isSelected; 

      if (isSelected) { 
       button1.setImageResource(R.drawable.selected); 
      } 
      else { 
       button1.setImageResource(R.drawable.not_selected); 
      } 
     } 
    }); 

然而,大多數時候,我需要點擊按鈕經過5次爲它註冊的點擊。

我是否需要增加圖片尺寸或是否有更好的方法來聆聽點擊?我應該使用onClick屬性嗎?

+0

請看看我的答案。 –

回答

3

提供一些填充以增加Tap區域。

android:padding="10dp" 
0

也許,圖像的大小太小(像@Shoeb Siddique說的)來獲取圖像上的觸摸事件。您可以增加圖像的填充或大小以提高觸摸圖像的概率。

0

在我看來,你不需要一個ImageButton,而是一個帶狀態的ToggleButton。 http://developer.android.com/guide/topics/ui/controls/togglebutton.html

請刪除android:clickable =「true」,這是不需要的,因爲它是一個按鈕,意思是說,默認情況下是true。如果它是一個TextView,它將需要。

+0

我正在使用ImageButton,因爲我需要自定義圖像。我本來可以使用ToggleButton或複選框,但圖像更大。 –

+0

啊,好的。我不知道那個 – Karoly

0

提取圖像的觸摸區我的意思透明背景 爲例如:在給圖片是86 * 70像素所以,當過用戶觸摸一輪透明背景86 * 70像素,可以觸發事件

enter image description here

相關問題