gpt4 book ai didi

android - 在 0x09050941(代码=1)处获取错误致命信号 11(SIGSEGV)关于使用 Canvas 制作圆形图像

转载 作者:行者123 更新时间:2023-11-30 03:43:41 27 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。在我的应用程序中,用户可以更改他/她的个人资料图片。该图像在一轮中显示。我正在使用以下代码从相机/文件(画廊)拍摄图像并隐藏圆角中的位图。

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

编辑::

我有一个用户 POJO,它保存从 SQLite 检索到的用户对象。我正在将此 Pojo 转换为 json 并存储在 SharedPreferance 中,直到用户 session 处于 Activity 状态。

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(数据类型位图)。这可能会造成问题。

最佳答案

我想你会想要检查 this guys solution因为 Bitmap 似乎不可序列化。我对 JSON/Gson 的机制了解不够,无法知道这绝对是问题所在。如果我处在你的位置,我会首先更改代码,使其从 PNG 文件而不是 JSON 中读取位图,并确认这是问题。然后看看像上面的链接那样序列化/存储位图的更好方法。

关于android - 在 0x09050941(代码=1)处获取错误致命信号 11(SIGSEGV)关于使用 Canvas 制作圆形图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15336106/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com