안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요,
아래 화면과 같이 이미지뷰(ImageView)로 그림화일을 출력한 후에 사용자가 대각선으로 선택한 영역만을
따로 비트맵화일로 저장하고 싶습니다.
스케일 타입은 아래와 같이 했습니다.
mImage.setScaleType(ImageView.ScaleType.FIT_CENTER);
이때 화면상에 선택한 영역이 원래의 이미지(1600x1200)상에 좌표를 구해야 Bitmap에서 잘라낼수 있을텐데
화면상의 좌표와 원본 이미지상의 좌표와의 변환이 잘 않되는군요 ㅡㅡ;
화면상의 좌표는 onTouch 에서 받은 것이라 이미지에서는 아무런 의미가 없어서 변환을 해야 하는데
방법을 모르니 너무 답답하네요 ^^
이것저것 알아보고 있지만, 방법을 알고 계신 분이 계시면 넌지시 살펴봐야 할곳이라도 알려주시면 감사하겠습니다.
이 소스는 큰 이미지를 화면에서 스크롤 하는 소스입니다.
여기서 활용하실 부분은 이미지의 일부영역을 화면에 투영하는 것인데 이 개념을 활용하면 이미지 좌표와 화면 좌표를 상호간에 변환 시킬수 있을 것입니다.
화면에 보여줄 이미지의 특정 사각형 영역 scrollRect 과 해당 scrollRect 이 보여질 장비의 디스플레이 영역인 displayRect 을 이용하여 컨트롤 하면 됩니다.
scrollRect 이 이미지 전체가 되면 화면에 전체 이미지 가 나오게 되고 일부를 자르게 되면 화면에서 이미지를 스크롤 할 수 있습니다.
즉 이 두가지 사각형의 포인트를 이용하여 터치 이벤트에서 발생한 포인트를 현재 화면에 보여지고 있는 지도 이미지의 좌표로 투영할 수 있습니다.
즉 이렇게 변환된 포인트 정보로 터치 이벤트가 발행시 시작지점과 UP 이벤트 발생시의 마지막 포인트를 이용하면 잘라내야 할 영역을 구할 수 있을 것이과 이를 변환하면 대상 이미지에서 잘라내야할 영역을 알 수 있습니다.