缩放位图导致Android中出现NullPointerException

时间:2018-01-08 00:26:41

标签: java android bitmap android-bitmap

我正在尝试缩放位图图像。但是,当我缩放它时,我收到一个错误。这是我的完整堆栈跟踪:

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(...)

也许我没有完全理解错误......

1 个答案:

答案 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,试试这个

相关问题