2011-09-16 5 views
0

내 문제는 하나의 ImageView가 있고 하나의 이미지를 Imageview의 setBackgroundResource로 설정 한 다음 이미지의 터치 이벤트에서 회전, 확대, 축소가 수행되지 않습니다. 나쁜 영어 커뮤니케이션 죄송ImageView SetImageResource 및 크기 조정

@Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // TODO Auto-generated method stub 
     if (v == mImageViewMask) { 

      System.out.println("Vande Mataram"); 
      mImageViewMask = (ImageView) v; 
      r = Math.atan2(event.getX() - mImageViewMask.getWidth()/2, 
        mImageViewMask.getHeight()/2 - event.getY()); 
      rotation = (int) Math.toDegrees(r); 

      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; 
       break; 

      case MotionEvent.ACTION_POINTER_DOWN: 

       oldDist = spacing(event); 
       Log.d(TAG, "oldDist=" + oldDist); 
       if (oldDist > 10f) { 

        savedMatrix.set(matrix); 
        midPoint(mid, event); 
        mode = ZOOM; 
        Log.d(TAG, "mode=ZOOM"); 
       } 
       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) { 
        updateRotation(rotation); 
        newDist = spacing(event); 
        Log.d(TAG, "newDist=" + newDist); 
        if (newDist > 10f) { 

         matrix.set(savedMatrix); 
         scale = newDist/oldDist; 
         matrix.postScale(scale, scale, mid.x, mid.y); 
        } 
       } 
       break; 

      case MotionEvent.ACTION_UP: 
      case MotionEvent.ACTION_POINTER_UP: 

       mode = NONE; 
       Log.d(TAG, "mode=NONE"); 
       break; 
      } 

      // Perform the transformation 

      mImageViewMask.setImageMatrix(matrix); 
     } 
     return true; 
    } 

- : 다음

내 터치 이벤트 코드입니다.

미리 감사드립니다.

+0

귀하의 활동에서 이것을 호출하려면 setContentView (new MyImageView (this)); – user370305

답변

0

setBackgroundImage 대신 이미지를 원본으로 설정하십시오.

+0

이미지를 소스로 설정하면 다음과 같은 문제가 발생합니다. http://stackoverflow.com/questions/7430441/imageview-problem-in-android –

+0

링크의 문제점을 이해하기 어렵습니까? –

+0

이 링크에서 마스크 이미지는 투명하지만이 이미지를 ImageView의 BackgroundResource로 설정하면 투명한 영역이없는 마스크 만 표시됩니다. 마스크 이미지를 SetImageResource로 설정하면 투명한 영역의 이미지도 표시됩니다. –

관련 문제