Commit 79ce9240dd12aa9c01f45cc7ecdfd56ba6b0889a
1 parent
32434bc9c6
Exists in
master
图片裁剪问题解决
Showing
1 changed file
with
10 additions
and
19 deletions
Show diff stats
app/src/main/java/com/hjx/parent/ImageEditActivity.java
... | ... | @@ -49,25 +49,16 @@ public class ImageEditActivity extends BaseActivity<ActivityImageEditBinding> { |
49 | 49 | @Override |
50 | 50 | public void onConfirm(Rect markedArea) { |
51 | 51 | Bitmap backGroundBitmap = binding.markView.getBackGroundBitmap(); |
52 | - int bitmapWidth = backGroundBitmap.getWidth(); | |
53 | - int bitmapHeight = backGroundBitmap.getHeight(); | |
54 | - int markSizeViewWidth = binding.markView.getWidth(); | |
55 | - int markSizeHeight = binding.markView.getHeight(); | |
56 | - Log.d(toString(), markedArea.toString()); | |
57 | - int widthFold = (int) CommonUtil.div(bitmapWidth, markSizeViewWidth, 2); | |
58 | - int heightFold = (int) CommonUtil.div(bitmapHeight, markSizeHeight, 2); | |
59 | - | |
60 | - markedArea.left = CommonUtil.mulForInt(markedArea.left, widthFold); | |
61 | - markedArea.top = CommonUtil.mulForInt(markedArea.top, heightFold); | |
62 | - markedArea.right = CommonUtil.mulForInt(markedArea.right, widthFold); | |
63 | - markedArea.bottom = CommonUtil.mulForInt(markedArea.bottom, heightFold); | |
64 | - Log.d(toString(), "markedArea.left=" + markedArea.left + "markedArea.top=" + markedArea.top | |
65 | - + ";markedArea.right=" + markedArea.right + ";markedArea.bottom=" + markedArea.bottom); | |
66 | - bitmap = Bitmap.createBitmap(backGroundBitmap, | |
67 | - markedArea.left, | |
68 | - markedArea.top, | |
69 | - (markedArea.right - markedArea.left) > bitmapWidth ? bitmapWidth : markedArea.right - markedArea.left, | |
70 | - (markedArea.bottom - markedArea.top) > bitmapHeight ? bitmapHeight : markedArea.bottom - markedArea.top); | |
52 | + float sx = 1f * backGroundBitmap.getWidth() / binding.markView.getWidth(); | |
53 | + float sy = 1f * backGroundBitmap.getHeight() / binding.markView.getHeight(); | |
54 | + | |
55 | + bitmap = Bitmap.createBitmap( | |
56 | + backGroundBitmap, | |
57 | + (int) (markedArea.left * sx + 0.5), | |
58 | + (int) (markedArea.top * sy + 0.5), | |
59 | + (int) ((markedArea.right - markedArea.left) * sx + 0.5), | |
60 | + (int) ((markedArea.bottom - markedArea.top) * sy + 0.5) | |
61 | + ); | |
71 | 62 | binding.markView.reset(); |
72 | 63 | showImage(false); |
73 | 64 | } | ... | ... |