2012-06-09 8 views
0

setImageBitmap을 사용하여 이미지를 추가하는 두 개의 imageview가 있으며 setOnTouchListener도 적용됩니다. 하지만 여기서 문제는 처음으로 img을 추가 할 때 처음으로 터치로 움직이는 것입니다.하지만 두 번째 img를 추가 할 때 두 번째 img가 이동하지만 그 후에는 터치로 첫 번째 img를 이동할 수 없습니다. 죄송합니다 영어 및 덕분에 고급.별도의 onTouch 이벤트가있는 두 개의 이미지 뷰

+0

내가에게 권리이고 u는 절대 레이아웃을 사용하거나 또는 u가 사용 무슨 그게 내가 두 이미지 뷰가 내 @khan – Khan

+0

을 회신 해 드리겠습니다 기반보다 먼저 말하지 않은 상대 레이아웃에서 나는 어느 이미지가 img가 사용자에 의해 터치되는지에 따라 두 이미지를 이동하려고합니다. – Rohit13

+0

하지만 하나의 큐가 어떤 기본 UI에 이미지를 터치하면 다시 그려 지거나 이미지를 터치하여 움직일 수 있습니다. – Khan

답변

0

당신은, 당신을 도울 수에 대한 코드를 다음 시도하고 대신 텍스트 뷰의 이미지 뷰를 사용하십시오

ImageView first_image=new ImageView(this); 
    first_image.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
       if(event.getAction()==MotionEvent.ACTION_UP) 
       { 

       } 
       if(event.getAction()==MotionEvent.ACTION_DOWN) 
       { 

       } 
       if(event.getAction()==MotionEvent.ACTION_MOVE) 
       { 
        //Code for image moving 
       } 
      return false; 
     } 
    }); 


     ImageView second_image=new ImageView(this); 
    second_image.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
       if(event.getAction()==MotionEvent.ACTION_UP) 
       { 

       } 
       if(event.getAction()==MotionEvent.ACTION_DOWN) 
       { 

       } 
       if(event.getAction()==MotionEvent.ACTION_MOVE) 
       { 
        //code for image moving 
       } 
      return false; 
     } 
    }); 
+0

별도의 이벤트를 적용했지만 작동하지 않습니다. – Rohit13

+0

코드를 게시하여 문제가 무엇인지 이해할 수 있습니까? – deepa

0

로 두 개의 이미지를 별도로 위해 onTouchListener를 제공해야합니다. 내가 u는 터치에 이미지를 이동하려고 생각

tv1 = (TextView)findViewById(R.id.text_view1); 
tv1.setOnTouchListener(new View.OnTouchListener() {   

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     layoutParams1 = (RelativeLayout.LayoutParams) tv1.getLayoutParams(); 
     switch(event.getActionMasked()) 
     { 
      case MotionEvent.ACTION_DOWN: 
       break; 
      case MotionEvent.ACTION_MOVE: 
       int x_cord = (int) event.getRawX(); 
       int y_cord = (int) event.getRawY(); 
       if (x_cord > windowwidth) { 
        x_cord = windowwidth; 
       } 
       if (y_cord > windowheight) { 
        y_cord = windowheight; 
       } 
       layoutParams1.leftMargin = x_cord - 25; 
       layoutParams1.topMargin = y_cord - 75; 
       tv1.setLayoutParams(layoutParams1); 
       break; 
      default: 
       break; 
     } 
     return true; 
    } 
}); 

tv2 = (TextView)findViewById(R.id.text_view2); 
tv2.setTextColor(Color.MAGENTA); 
tv2.setOnTouchListener(new View.OnTouchListener() {   

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     layoutParams2 = (RelativeLayout.LayoutParams) tv2.getLayoutParams(); 
     switch(event.getActionMasked()) 
     { 
      case MotionEvent.ACTION_DOWN: 
       break; 
      case MotionEvent.ACTION_MOVE: 
       int x_cord = (int) event.getRawX(); 
       int y_cord = (int) event.getRawY(); 
       if (x_cord > windowwidth) { 
        x_cord = windowwidth; 
       } 
       if (y_cord > windowheight) { 
        y_cord = windowheight; 
       } 
       layoutParams2.leftMargin = x_cord - 25; 
       layoutParams2.topMargin = y_cord - 75; 
       tv2.setLayoutParams(layoutParams2); 
       break; 
      default: 
       break; 
     } 
     return true; 
    } 
}); 
관련 문제