使用MikeOrtiz的awesome ImageView implementation触摸和缩放事件,我想裁剪相机拍摄的照片以匹配变焦。用他的方法......
// Return a Rect representing the zoomed image.
RectF getZoomedRect();
...我尝试将生成的图片位图裁剪为缩放尺寸,如下所示:
RectF zoomCoordinates = mTouchImageView.getZoomedRect();
Bitmap croppedBitmapToOverview = Bitmap.createBitmap(
AppResources.sCurrentImage,
((int) zoomCoordinates.left),
((int) zoomCoordinates.top),
((int) zoomCoordinates.width()),
((int) zoomCoordinates.height()));
但是我得到一个“必须大于0”的错误。调试时我注意到由于转换为Integer,所有值都为0。然而真正的价值观是这样的:
//Log.d print for each of those fields without the int cast
Left 0.34047672
Top 0.20797288
Width 0.33333334
Height 0.3429547
所以这是我的问题,但我看不出如何解决这个问题。我之前从未使用过bitmaps或者canvas,Rect等等。
我是否可以对这些值进行一些调整,或者我应该采取不同的方法?
答案 0 :(得分:0)
通过简单地查看各种视图的“屏幕截图”来解决问题。这让我得到了一张带有缩放图片的位图
mTouchImageView.setDrawingCacheEnabled(true);
AppResources.sCurrentImage = Bitmap.createBitmap(mTouchImageView.getDrawingCache());
答案 1 :(得分:0)
将坐标乘以图像大小,例如
(int)(zoomCoordinates.left * imageSize)