我得到了一个nullpointerexception。唯一的问题是,它似乎并不存在于所有设备中,所以对我来说很奇怪..
一个想法可能是 Bitmap src可能为null?但是因为我在前面初始化它是不可能的?我猜?由于它不是在我自己的设备上发生,我只需要确定...
Bitmap bm = BitmapFactory.decodeResource(C.getResources(), resId);
Bitmap result = mark(bm);
public static Bitmap mark(Bitmap src) {
int w = src.getWidth();
// int w = 150;
int h = src.getHeight();
// int h = 150;
Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src, 0, 0, null);
Paint paint = new Paint();
paint.setColor(Color.GRAY);
paint.setTypeface(font);
paint.setTextSize(15);
paint.setAntiAlias(true);
canvas.drawText("Hi", 10, 15, paint);
return result;
}
答案 0 :(得分:1)
由于我们没有堆栈跟踪,我假设您在mark()的第一行得到了例外:int w = src.getWidth();
。
这意味着确实src为null。如果图像无法解码,则public static Bitmap decodeResource (Resources res, int id)
可以返回null。
因此,您应该深入了解可用的资源。也许在有故障的设备上缺少一个png?
答案 1 :(得分:0)
如果解码有任何问题,DecodeResources可以返回null。这可能就是这里发生的事情。