2011-02-02 53 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,那么您应该能够处理所有情况,无论您通过触摸或跟踪球以何种方式选择图像。