SmartCropper
SmartCropper copied to clipboard
裁剪之后,保存的图片显示范围超过裁剪范围
是有什么地方设置不对吗
这个问题你解决了吗?
![]()
是有什么地方设置不对吗
解决了吗
![]()
有什么地方设置不对吗
解决了吗
没有作者都没有发解决方案
我在部分机型上遇到了这个问题
修复方案
@Override
public Bitmap getBitmap() {
Bitmap bmp = null;
Drawable drawable = getDrawable();
if (drawable instanceof BitmapDrawable) {
bmp = ((BitmapDrawable) drawable).getBitmap();
}
//修复裁剪区域不一致问题
if (bmp != null) {
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
int bitWidth = bmp.getWidth();
int bitHeight = bmp.getHeight();
if (width != bitWidth || height != bitHeight) {
Matrix matrix = new Matrix();
matrix.setScale(1.0f * width / bitWidth, 1.0f * height / bitHeight);
return Bitmap.createBitmap(bmp, 0, 0, bitWidth, bitHeight, matrix, true);
}
}
return bmp;
}
这两个方法获取出的 大小不一致造成的
private Point[] getFullImgCropPoints() {
Point[] points = new Point[4];
Drawable drawable = getDrawable();
if (drawable != null) {
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
points[0] = new Point(0, 0);
points[1] = new Point(width, 0);
points[2] = new Point(width, height);
points[3] = new Point(0, height);
}
return points;
}
public Bitmap getBitmap() {
Bitmap bmp = null;
Drawable drawable = getDrawable();
if (drawable instanceof BitmapDrawable) {
bmp = ((BitmapDrawable) drawable).getBitmap();
}
return bmp;
}
适配方案的原因