2011-02-02 2 views
0

У меня есть набор изображений. Я показываю его на экране как сетку. Итак, основываясь на выборе каждого изображения, я хочу делать действия. Это я сделал. Но еще одно требование заключается в том, что, когда мы двигаем рукой через эти изображения, я также должен выполнять те же действия. То есть, мне придется отслеживать, на каком изображении я коснулся прямо сейчас и выполнить действия. Как я его реализую? Кто-нибудь есть идеи? Пожалуйста, ответьте.прокрутка в режиме сетки

+0

> Так основано на выборе каждого изображения я хочу сделать действия. Что я сделал ==> как этот выбор выполняется? Через трекбол? –

+0

Это сетка. Поэтому я использовал ItemClickListener для этого. – Mathew

ответ

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, то вы должны иметь возможность обрабатывать все случаи независимо от того, каким образом вы выбрали изображение, используя сенсорный или трекбольный.

+0

эти изображения находятся в сетке. поэтому мне придется добавить слушателя в сетку ... – Mathew

+0

@Mathew: зачем сетке? Почему не для самого изображения? У меня больше смысла ... Кстати: также см. Http://stackoverflow.com/questions/738817/create-a-clickable-image-in-a-gridview-in-android –

Смежные вопросы