From 79ce9240dd12aa9c01f45cc7ecdfd56ba6b0889a Mon Sep 17 00:00:00 2001 From: shixianjie Date: Thu, 10 Oct 2024 17:48:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E8=A3=81=E5=89=AA=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hjx/parent/ImageEditActivity.java | 29 ++++++++-------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/hjx/parent/ImageEditActivity.java b/app/src/main/java/com/hjx/parent/ImageEditActivity.java index 0011acd..164bc10 100644 --- a/app/src/main/java/com/hjx/parent/ImageEditActivity.java +++ b/app/src/main/java/com/hjx/parent/ImageEditActivity.java @@ -49,25 +49,16 @@ public class ImageEditActivity extends BaseActivity { @Override public void onConfirm(Rect markedArea) { Bitmap backGroundBitmap = binding.markView.getBackGroundBitmap(); - int bitmapWidth = backGroundBitmap.getWidth(); - int bitmapHeight = backGroundBitmap.getHeight(); - int markSizeViewWidth = binding.markView.getWidth(); - int markSizeHeight = binding.markView.getHeight(); - Log.d(toString(), markedArea.toString()); - int widthFold = (int) CommonUtil.div(bitmapWidth, markSizeViewWidth, 2); - int heightFold = (int) CommonUtil.div(bitmapHeight, markSizeHeight, 2); - - markedArea.left = CommonUtil.mulForInt(markedArea.left, widthFold); - markedArea.top = CommonUtil.mulForInt(markedArea.top, heightFold); - markedArea.right = CommonUtil.mulForInt(markedArea.right, widthFold); - markedArea.bottom = CommonUtil.mulForInt(markedArea.bottom, heightFold); - Log.d(toString(), "markedArea.left=" + markedArea.left + "markedArea.top=" + markedArea.top - + ";markedArea.right=" + markedArea.right + ";markedArea.bottom=" + markedArea.bottom); - bitmap = Bitmap.createBitmap(backGroundBitmap, - markedArea.left, - markedArea.top, - (markedArea.right - markedArea.left) > bitmapWidth ? bitmapWidth : markedArea.right - markedArea.left, - (markedArea.bottom - markedArea.top) > bitmapHeight ? bitmapHeight : markedArea.bottom - markedArea.top); + float sx = 1f * backGroundBitmap.getWidth() / binding.markView.getWidth(); + float sy = 1f * backGroundBitmap.getHeight() / binding.markView.getHeight(); + + bitmap = Bitmap.createBitmap( + backGroundBitmap, + (int) (markedArea.left * sx + 0.5), + (int) (markedArea.top * sy + 0.5), + (int) ((markedArea.right - markedArea.left) * sx + 0.5), + (int) ((markedArea.bottom - markedArea.top) * sy + 0.5) + ); binding.markView.reset(); showImage(false); } -- 1.9.0