Android: BitmapFactory.decodeResource null zurückgeben

Ich kann nicht scheinen, um dies herauszufinden. Ich habe 2 java-Klassen mit verschiedenen Eigenschaften, die jede Berufung BitmapFactory.decodeResource um den selben Bild-Ressource, gibt das bitmap, während die anderen den Wert null zurück. Beide Klassen im selben Paket.

Hier ist die Klasse, die arbeitet, ruft es BitmapFactory.decodeResource gibt die bitmap. Ich habe nur den relevanten code.

package advoworks.test;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MainScreen extends SurfaceView implements SurfaceHolder.Callback {

    private static final String TAG = MainScreen.class.getSimpleName();

    public MainScreen(Context context) {
        super(context);

        Bitmap bitmap;
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.droid_1);

        //adding the callback (this) to the surface holder to intercept events;
        getHolder().addCallback(this);

        //make the GamePanel focusable so it can handle events
        setFocusable(true);

    }
}

Hier ist die Klasse, das funktioniert nicht. BitmapFactory.decodeResource gibt einen NULL-Wert im debug. Ich habe nur code, den ich fühlte, war relevant.

package advoworks.test;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.Log;

public class Segment {

    private int x;
    private int y;
    private Bitmap bitmap;

    public Segment(int x, int y) {
        Log.d(TAG, "Creating Segment");
        try {
            this.bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.droid_1);
        } catch (Exception e) {
            Log.d(TAG,"Error is " + e);
        }   
        this.x = x;
        this.y = y;
        Log.d(TAG, "Created Segment");
    }
}

Keine Ahnung, wer?

  • sind Sie immer Fehler in der logcat?
  • Nein, ich bekomme keine Fehler im logcat 🙁
  • Warum u tun müssen, laden Sie die gleiche Ressource zweimal in der gleichen app. Laden Sie es einmal auf und übergeben den Verweis auf alle Orte u es brauchen.
InformationsquelleAutor Kevin | 2011-09-21
Schreibe einen Kommentar