2011-02-02 79 views
0

我有一組圖像。我將它作爲網格顯示在屏幕上。 所以基於選擇每個圖像我想要做的行動。 我已經完成了。但還有一個要求是,當我們通過這些圖像移動手時,我也必須執行相同的操作。也就是說,我將不得不跟蹤我現在觸摸的圖像並執行操作。我將如何實施它?有人有什麼主意嗎?請回復。在網格視圖內滾動

+0

>在選擇我想要做的行動,每個圖像因此,基於。我已經完成了==>如何完成選擇?通過軌跡球? – 2011-02-02 04:23:30

+0

這是一個網格視圖。所以我使用ItemClickListener來做到這一點.. – Mathew 2011-02-02 04:25:58

回答

0

我完成了。

在下面的代碼colorGV是我的網格名稱。 添加監聽器。

colorGV.setOnTouchListener(new OnTouchClick(context)); 

,並定義爲onTouchClick:

private class OnTouchClick implements OnTouchListener { 

     Context context; 

     OnTouchClick(Context context) { 
      this.context = context; 
     } 

     public boolean onTouch(View v, MotionEvent event) { 
      try { 

       if (event.getAction() == MotionEvent.ACTION_MOVE) { 
        int x = (int) event.getX(); 
        int y = (int) event.getY(); 

        int position = -1; 
        for (int i = 0; i < colorGV.getChildCount(); i++) { 
         Rect ButtonRect = new Rect(); 
         colorGV.getChildAt(i).getHitRect(ButtonRect); 
         if (ButtonRect.contains(x, y)) { 
          position = i; 
          break; 
         }  
        } 

        if (position >= 0 && prevPos != position) { 
         System.out.println("Position changed :" + position); 
         return true; 
        } 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return false; 
     } 
    } 
0

嘗試onTouch()事件從View.OnTouchListener。當用戶執行限定爲觸摸事件的操作時(包括按下,釋放或屏幕上的任何移動手勢(在該項目的範圍內))時,會調用此函數。

希望這會有所幫助。

0

您可以設置聽衆您的圖像,即

imgView.setOnTouchListener(...) 
imgView.setOnFocusChangeListener(...) 

imgView.setOnClickListener() 

,然後執行這些聽衆的動作。

如果您使用setOnFocusChangeListener,那麼您應該能夠處理所有情況,無論您通過觸摸或跟蹤球以何種方式選擇圖像。