2013-11-20 4 views
3

Хорошо moorning:реализовать GestureDetector для ImageView

У меня есть ImageView в моей деятельности, и я выставиться в OntOuchListner() на мой ImageView, что означает, что я реализовал этот интерфейс для моего ImageView, как это:

public class mapActivity extends Activity 
{ 

    //-------------------------------------- 
    private ImageView imageView; 

    /** 
    * Called when the activity is first created. 
    */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     setContentView(R.layout.main); 
     imageView = (ImageView) this.findViewById(R.id.imageView1); 

     AddImageViewEvents(); 
    } 
private void AddImageViewEvents() { 


     imageView.setOnTouchListener(new ImageView.OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent event) { 
       int action, pointerCount, i; 
       action = event.getAction(); 
       pointerCount = event.getPointerCount(); 

        switch (action) { 
         case MotionEvent.ACTION_DOWN: 
          //code here 
          break; 

         case MotionEvent.ACTION_MOVE: 
          //code here 
          break; 

         default: 
          break; 
        } 

       return true; 
      } 

    } 

Я хочу, чтобы таким же образом установить GestureDetector в мой ImageView, я не знаю, возможно ли это.

Спасибо.

ответ

3
public class TestImageView extends ImageView implements OnGestureListener{ 
    public TestImageView(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 

     setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       // TODO Auto-ge`enter code here`nerated method stub 
       return false; 
      } 
     }); 
    } 

    @Override 
    public boolean onDown(MotionEvent e) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
      float velocityY) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public void onLongPress(MotionEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, 
      float distanceY) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public void onShowPress(MotionEvent e) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public boolean onSingleTapUp(MotionEvent e) { 
     // TODO Auto-generated method stub 
     return false; 
    } 
} 

Теперь вы можете использовать TestImageView в своем xml вместо простого ImageView.

1

Да, вы можете это сделать. Пусть класс расширяет ImageView и реализует OnGestureListener.

+0

Нет, я хочу реализовать как OngestlureListner, так и OnTouchListner. – RiadSaadi