我似乎無法弄清楚這一點。我有2個具有不同特徵的java類,每個調用BitmapFactory.decodeResource獲取相同的圖像資源,一個返回位圖,另一個返回null。兩個類都在同一個包中。Android:BitmapFactory.decodeResource返回null
這裏是工作的類,它調用返回位圖的BitmapFactory.decodeResource。我只包含相關的代碼。
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);
}
}
這是不起作用的類。 BitmapFactory.decodeResource在調試中返回NULL。我只包含了我認爲相關的代碼。
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");
}
}
任何線索的人?
你得到的logcat的任何錯誤? – blessenm
不,我沒有得到任何錯誤logcat :( – Kevin
爲什麼你需要加載相同的資源兩次在同一個應用程序。加載一次,並通過其引用到所有地方,你需要它 – Ronnie