0

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;
    }
4

2 に答える 2

1

スタック トレースがないため、 mark(): の最初の行で例外が発生すると想定しますint w = src.getWidth();

これは、実際に src が null であることを意味します。public static Bitmap decodeResource (Resources res, int id)画像をデコードできない場合は、null を返すことができます。

したがって、利用可能なリソースを掘り下げる必要があります。たぶん、故障したデバイスにpngがありませんか?

于 2013-02-25T19:35:17.100 に答える
0

デコードに問題がある場合、DecodeResourcesはnullを返す可能性があります。それがここで起こったことかもしれません。

于 2013-02-25T19:30:44.620 に答える