我正在尝试缩放位图图像。但是,当我缩放它时,我收到一个错误。这是我的完整堆栈跟踪:
include
但是我没有使用E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.nodomain.speedtap2, PID: 3113
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nodomain.speedtap2/com.nodomain.speedtap2.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.setHasAlpha(boolean)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3322)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3418)
at android.app.ActivityThread.access$1100(ActivityThread.java:231)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.setHasAlpha(boolean)' on a null object reference
at android.graphics.Bitmap.createBitmap(Bitmap.java:979)
at android.graphics.Bitmap.createBitmap(Bitmap.java:946)
at android.graphics.Bitmap.createBitmap(Bitmap.java:877)
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:753)
at com.nodomain.speedtap2.MainMenu.<init>(MainMenu.java:47)
at com.nodomain.speedtap2.MainActivity$GameView.<init>(MainActivity.java:54)
at com.nodomain.speedtap2.MainActivity.onCreate(MainActivity.java:33)
at android.app.Activity.performCreate(Activity.java:6904)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3269)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3418)
at android.app.ActivityThread.access$1100(ActivityThread.java:231)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) `
制作位图吗?这是我的代码:
BitmapFactory.decodeResource(...)
也许我没有完全理解错误......
答案 0 :(得分:0)
public class MainMenu {
public static Bitmap playButton;
Context mcontext;
public static Bitmap MainMenu(Context context) {
playButton = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon);
float aspectRatio = 421/475;
int playButtonWidth = MainActivity.screenX / 5;
int playButtonHeight = (int)(MainActivity.screenX / (aspectRatio));
playButton = Bitmap.createScaledBitmap(playButton, 100, 100, false);
return playButton;
}
}
问题是你的playButtonWidth,playButtonHeight返回null。所以崩溃请分享你如何获得MainActivity.screenX,试试这个