2011-10-04 6 views
14

Activity에 이미지의 핀치 확대 기능을 위해 XML에 정의 된 ImageView 사용자 정의가 있습니다. 자, 내 문제는 핀치 확대/축소 기능에서 축척 된 Bitmap을 가져 오려고한다는 것입니다. 예를 들어 사용자가 이미지 확대/축소를 수행하는 경우 이미지의 정확한 크기와 위치를 비트 맵으로 저장하려고합니다.ImageView에서 축척 된 비트 맵을 얻는 방법

이것은 XML로 선언 된 사용자 정의 이미지 뷰입니다.

<com.cam.view.PinchZoom_ImageView 
    android:id="@+id/gallery_selected_image_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/icon" 
    android:scaleType="center" 
/> 

UPDATE :

나는 스케일 이미지를 얻기 위해 아래의 코드를 시도하고 있지만, 그것은 빈 비트 맵을 반환합니다.

 pinchZoom.setDrawingCacheEnabled(true); 
     pinchZoom.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     pinchZoom.layout(0, 0, pinchZoom.getMeasuredWidth(), pinchZoom.getMeasuredHeight()); 
     pinchZoom.buildDrawingCache(true); 
     Bitmap_gallery_Item = Bitmap.createBitmap(pinchZoom.getDrawingCache()); 
     pinchZoom.setDrawingCacheEnabled(false); 

어떤 도움을 주시면 감사하겠습니다. 감사합니다

답변

12

잘 확장 당신에게 도움이 될 것 같다. 마지막으로 matrix을 사용하여 성공했습니다. 해결책은 매트릭스에 Image의 translation and scaling을 저장하는 것이 매우 간단합니다. 그래서, 나는 마지막으로 matrixpublic static으로 선언하고 그 행렬을 사용하여 캔버스에 비트 맵을 그려 넣습니다.

 Canvas comboImage = new Canvas(cs); 
     background = Bitmap.createScaledBitmap(background, width, height, true); 
     comboImage.drawBitmap(background, 0, 0, null); 
     comboImage.drawBitmap(foreground, PinchZoom_ImageView.matrix, null); 

여기에서 볼 수있는 것처럼 PinchZoom_ImageView.matrix입니다. 으로 선언 된 크기 조정되고 변환 된 이미지의 최종 위치가 포함 된 것은 matrix입니다.

+0

좋은 .... 그것은 XMl에서 선언 된 모든 ImageView에서 작동 할 것인가? – Siten

+0

예 확대 적용하는 모든 이미지에 적용됩니다. –

+0

@Lalit Poptani - ImageView 행렬이 명시 적으로 설정된 경우에만 작동하는 것처럼 보입니다. 스케일 유형에 관계없이 현재 표시된 비트 맵을 추출하는 방법이 있으면 좋을 것입니다. – Lee

0

당신은 scaleType="fitxy"을 가지고 있다면 스케일링 요소를 사용하여 ImageView의 너비/높이를 확대하거나 축소 할 수 있습니다 - 이미지의 높이/너비가 동일하기 때문에 정확한 높이/너비를 되 찾을 수 있습니다. 컨테이너로.

HTH

+0

저는 이미지가 움직이며 또한 확대도 가능하기 때문에 번역 후 이미지의 크기 조정과 함께 비트 맵을 저장하려고합니다. 고마워요. –

+0

Ok - 상황이 뭔지 모르겠지만 ImageView를 위와 같이 구현하여 이미지를 움직이거나 확대 할 수 없습니까? – Graeme

+0

위의 의미에 의해 scaleType = "fitxy"?를 사용하는 것입니다. –

0

이 게시물 갤러리에서 이미지 자르기 포함하고 이미지를 자르고 이미지 뷰에 자른 이미지와 쇼를 저장하는 사용자 수 있습니다.

는 마침내 나는 그냥 한 줄의 코드라고 믿을 수 없어, 일부는

Image Crop and show cropped Image in View

+0

감사합니다. 나는 체크하고 친구를 알릴 것이다. –

+0

@Lalit Poptani Okay da machan – Venky

관련 문제