Dois imageview com touchevent separado

No meu arquivo xml, eu declarei dois imageview e depois adiciono imagens nele usando o método setImageBitmap() e também aplico um evento touch separado.

Mas aqui o problema é que não consigo mover a primeira imagem quando a segunda imagem é adicionada ao setImageBitmap() e apenas a segunda imagem é móvel agora.
Agradecemos antecipadamente e desculpe pelo inglês.

working_bitmap = BitmapFactory.decodeFile(file_location+"cropped_image.jpg");  
outBitmap=Bitmap.createBitmap(
working_bitmap.getWidth(),
working_bitmap.getHeight(),Bitmap.Config.ARGB_8888);    
Canvas canvas1 = new Canvas(outBitmap);
canvas1.drawBitmap(working_bitmap, new Matrix(), null);
if(downloaded_shirt_image != null)
{
    int width = downloaded_shirt_image.getWidth();
    int height = downloaded_shirt_image.getHeight();
    int halfWidth = width/3;
    int halfHeight = height/3;
    //Half Scaled
    Bitmap bmHalf = Bitmap.createScaledBitmap(downloaded_shirt_image,
        halfWidth, halfHeight, false);
    proimg =(ImageView)findViewById(R.id.pro_img);
    proimg.setDrawingCacheEnabled(true);
    proimg.setImageBitmap(bmHalf);
    proimg.setVisibility(View.VISIBLE);
    proimg.setOnTouchListener(new View.OnTouchListener()
    {
      public boolean onTouch(View v, MotionEvent event) {
      ImageView view = (ImageView) v;
      int rotation = 25;
     //Dump touch event to log
      dumpEvent(event);
     //Handle touch events here...
      switch (event.getAction() & MotionEvent.ACTION_MASK) {
      case MotionEvent.ACTION_DOWN:
        savedMatrix.set(matrix);
        start.set(event.getX(), event.getY());
        Log.d(TAG, "mode=DRAG");
        mode = DRAG;
        proimg.invalidate();
        break;
      case MotionEvent.ACTION_MOVE:
        if (mode == DRAG) { 
// ...
                                                                                           matrix.set(savedMatrix);                                                            
        matrix.postTranslate(event.getX() - start.x,
        event.getY() - start.y);
       }
      else if (mode == ZOOM) {
         float newDist = spacing(event);
         Log.d(TAG, "newDist=" + newDist);
        if (newDist > 10f) {
        matrix.set(savedMatrix);
        float scale = newDist/oldDist;
        matrix.postScale(scale, scale, mid.x, mid.y);
        }
     }
    proimg.invalidate();
    break;
 }
      view.setImageMatrix(matrix);
    return true;//indicate event was handled
  }
 });
  canvas1.drawBitmap(downloaded_shirt_image, 50, 192, null);
 }

 if(downloaded_pant_image != null)
 {
  int width = downloaded_pant_image.getWidth();
  int height = downloaded_pant_image.getHeight();
  int halfWidth = width/3;
  int halfHeight = height/3;
  //Half Scaled
  Bitmap bmHalf = Bitmap.createScaledBitmap(downloaded_pant_image,
                  halfWidth, halfHeight, false);
  pantimg =(ImageView)findViewById(R.id.pro_img_down);
  pantimg.setDrawingCacheEnabled(true);
  pantimg.setImageBitmap(bmHalf);
  pantimg.setVisibility(View.VISIBLE);
  pantimg.setOnTouchListener(new View.OnTouchListener()
  {
   public boolean onTouch(View v, MotionEvent event) {
   ImageView view = (ImageView) v;
   int rotation = 25;
  //Dump touch event to log
   dumpEvent(event);
 //Handle touch events here...
  switch (event.getAction() & MotionEvent.ACTION_MASK) {
  case MotionEvent.ACTION_DOWN:
  savedMatrix.set(matrix);
  start.set(event.getX(), event.getY());
  Log.d(TAG, "mode=DRAG");
  mode = DRAG;
  pantimg.invalidate();
  break;
 case MotionEvent.ACTION_MOVE:
  if (mode == DRAG) {
 //...

 matrix.set(savedMatrix);                                              matrix.postTranslate(event.getX() - start.x,
 event.getY() - start.y);
 }
else if (mode == ZOOM) {
float newDist = spacing(event);
Log.d(TAG, "newDist=" + newDist);
if (newDist > 10f) {
matrix.set(savedMatrix);
float scale = newDist/oldDist;
matrix.postScale(scale, scale, mid.x, mid.y);
}
}
pantimg.invalidate();
break;
}
view.setImageMatrix(matrix);
return true;//indicate event was handled
}
}                            
);
canvas1.drawBitmap(downloaded_pant_image, 110, 565, null);
}
0
adicionado editado
Visualizações: 1
Eu tenho post meu código para referência.
adicionado o autor Rohit13, fonte
postar seu código, para que possamos saber onde você está indo errado
adicionado o autor Andro Selva, fonte
também ter alguns métodos/classes em vez de um grande heap seria bom.
adicionado o autor MikeIsrael, fonte
Olá, infelizmente, seu código é quase ilegível. Que tal um pouco mais de formatação?
adicionado o autor Tim, fonte

1 Respostas

Por favor, veja a resposta do link seguinte e Comentários também, pode ajudá-lo.

Drag & Drop Two Images

1
adicionado