我有一个Activity
,它在图像的XML for Pinch Zoom功能中定义了自定义ImageView
。现在,我的问题是我想从Pinch Zoom功能中获取缩放的Bitmap
。例如,如果用户对图像进行缩放,那么我想将图像的确切大小和位置存储为位图。
这是我用XML声明的自定义ImageView。
<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"
/>
更新
我正在尝试下面的代码来获取缩放的图像,但它返回一个空白位图。
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);
任何帮助将不胜感激。感谢
答案 0 :(得分:12)
好吧,最后我无法相信它只是一行代码。我终于成功使用了matrix
。解决方案非常简单,我将图像的translation and scaling
存储在矩阵中。所以,我将最终matrix
声明为public 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
,其中包含我已声明为public static
的缩放和翻译图像的最终位置。
答案 1 :(得分:0)
如果您有scaleType="fitxy"
,则可以使用缩放系数来放大或缩小ImageView的宽度/高度 - 这也意味着您可以拉回图像的精确高度/宽度,因为它具有与容器尺寸相同。
HTH
答案 2 :(得分:0)