在Android上使用RectF参数裁剪位图



使用MikeOrtiz的令人敬畏的ImageView实现触摸和缩放事件,我想裁剪用相机拍摄的照片以匹配缩放。使用他的方法…

// 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"的错误。在调试时,我注意到由于转换为整数,所有值都为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

所以这是我的问题,但我不知道如何解决这个问题。我从来没有使用过位图或画布,矩形等

我可以对这些值做一些调整吗,或者我应该采取完全不同的方法?

通过简单地截取各种视图的"截图"来解决这个问题。这给了我一个位图,图片被放大了

mTouchImageView.setDrawingCacheEnabled(true);
        AppResources.sCurrentImage = Bitmap.createBitmap(mTouchImageView.getDrawingCache());

将坐标与图像的大小相乘,如

(int)(zoomCoordinates.left * imageSize)

最新更新