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); }