我陷入了一个奇怪的问题。
在我的应用程序中,用户可以更改他/她的个人资料图片。这张照片显示在一轮中。
我正在从相机/文件(Gallery)拍摄图像&为了在圆角中隐藏位图,我正在使用以下代码。
public static Bitmap getRoundedShape(Context context, Bitmap scaleBitmapImage, int imageWidth, int imageHeight) {
int targetWidth = getDPEquivalentPixels(context, imageWidth);
int targetHeight = getDPEquivalentPixels(context, imageHeight);
Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(targetBitmap);
Path path = new Path();
path.addCircle(((float) targetWidth - 1) / 2, ((float) targetHeight - 1) / 2, (Math.min(((float) targetWidth), ((float) targetHeight)) / 2), Path.Direction.CW);
Paint paint = new Paint();
paint.setColor(Color.GRAY);
// paint.setStyle(Paint.Style.STROKE);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setDither(true);
paint.setFilterBitmap(true);
canvas.drawOval(new RectF(0, 0, targetWidth, targetHeight), paint);
canvas.clipPath(path);
Bitmap sourceBitmap = scaleBitmapImage;
canvas.drawBitmap(sourceBitmap, new Rect(0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight()), new Rect(0, 0, targetWidth, targetHeight), null);
return targetBitmap;
}
首先我将图像上传到服务器进行压缩。然后我将其保存在本地SQLite中作为字节数组&使用上述方法将其转换为圆形位图以显示在
ImageView
.
从现在开始,我将参考
SQLite
用于配置文件图像。我的问题是第一次圆角代码工作正常,但当我与SQLIte Image&试着把它转换成圆形,我得到了以下错误。
A/libc(14809): Fatal signal 11 (SIGSEGV) at 0x5f763ee0 (code=1), thread 14809
编辑::
我有一个User POJO,它保存从SQLite检索的User对象。我正在将这个Pojo转换为json&存储在SharedPreferrance中,直到用户会话处于活动状态。
public class User {
private int uid;
private String userName;
private String firstName;
private String lastName;
private String email;
private Date dob;
private String gender;
private int delFlag;
private int pin;
private Bitmap imageData;
}
我使用Gson进行JSON到POJO&反之亦然。但我不知道Gson库是否会解析我的
imageData
(数据类型位图)是否正确。这可能会造成问题。