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 | } | ... | ... |