마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ImageView에서 줌인할때 그린선도 같이 움직이게 하기

0 추천

안녕하세요 안드로이드 펍 가족님들.

 

이미지뷰를 커스텀해서 줌인기능을 하였는데요.. 

onDraw에서 canvas.drawLine으로 그린 그림은 이상하게 줌인할때 같이 커지거나 그렇지 않습니다.

왜그런건가요... 

   @Override

    protected void onDraw(Canvas canvas) {

 

    super.onDraw(canvas);

    

    canvas.save();

    

        Paint p = new Paint();

        canvas.drawLine(0, 25, 60, 20, p);

        canvas.drawLine(0, 1500, 60, 20, p);

        canvas.restore();

         

        

    }

 

 

  @Override

        public boolean onScale(ScaleGestureDetector detector) {

      

            float mScaleFactor = detector.getScaleFactor();

            float origScale = saveScale;

            saveScale *= mScaleFactor;

            if (saveScale > maxScale) {

                saveScale = maxScale;

                mScaleFactor = maxScale / origScale;

            } else if (saveScale < minScale) {

                saveScale = minScale;

                mScaleFactor = minScale / origScale;

            }

 

            if (origWidth * saveScale <= viewWidth || origHeight * saveScale <= viewHeight)

                matrix.postScale(mScaleFactor, mScaleFactor, viewWidth / 2, viewHeight / 2);

            else

                matrix.postScale(mScaleFactor, mScaleFactor, detector.getFocusX(), detector.getFocusY());

 

            fixTrans();

            

            mScaleFactor *= detector.getScaleFactor();

            mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f));

            invalidate();

            return true;

        }

위와 같이 소스 코드가 되어있습니다.

 

좋은 하루 되십싱시오.^^

흠바바 1 (4,000 포인트) 님이 2014년 7월 8일 질문

1개의 답변

0 추천
 
채택된 답변
이미지만 스케일링 하신거 아닌가요?

뷰에 들어있는 컨텐츠 전체를 스케일링 하시려면 canvas를 스케일링 하시는게 맞을것 같습니다.
갈무리 (12,430 포인트) 님이 2014년 7월 8일 답변
흠바바 1님이 2014년 7월 8일 채택됨
아하 말씀하신대로 canvas를 스케일링해서 해결하였습니다

감사합니다^^  

이제 다른걸 해야겠군요
...