如何克服我的Android应用程序中的OutOfMemory错误?

拉维·香克(Ravi Shanker Yadav)

我正在创建一个应用程序,该应用程序加载了六个位图作为按钮背景,以在用户对此执行某些操作时更改按钮状态,但有时会出现错误,例如

java.lang.OutOfMemoryError:位图大小超出VM预算

我在MainActivity中使用以下方法设置位图:

            on_duty.setBackgroundDrawable(GetApplicationDrawable
                    .Button3(R.drawable.on_duty_d));
            off_duty.setBackgroundDrawable(GetApplicationDrawable
                    .Button3(R.drawable.off_duty));
            journey_start.setBackgroundDrawable(GetApplicationDrawable
                    .Button3(R.drawable.journey));
            journey_end.setBackgroundDrawable(GetApplicationDrawable
                    .Button3(R.drawable.destination_d));
            metting_in.setBackgroundDrawable(GetApplicationDrawable
                    .Button3(R.drawable.meeting));
            metting_out.setBackgroundDrawable(GetApplicationDrawable
                    .Button3(R.drawable.over_d));

还有我的GetApplicationDrawable类中的Button3方法,如下所示,用于解码位图

public static Drawable Button3(int res_id) {
    Bitmap bitmap = null;
    try {
        bitmap = BitmapFactory.decodeResource(context.getResources(),
                res_id);

    } catch (Exception e) {
        e.printStackTrace();
    }
    int width = bitmap.getWidth();
    int height = bitmap.getHeight();
    float newWidth = (float) ((float) wt / 3);
    float scaleWidth = ((float) newWidth) / width;
    float newHeight = (float) ((float) wt / 4);
    float scaleHeight = ((float) newHeight) / height;
    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);
    Bitmap mannagedBitmap = bitmapMannagement(context.getResources(),
            res_id, width, height);
    Bitmap resizedBitmap = Bitmap.createScaledBitmap(mannagedBitmap,
            (int) newWidth, (int) newHeight, true);
    Drawable d = new BitmapDrawable(context.getResources(), resizedBitmap);
    return d;
}

谢谢。

丹尼117

当此代码失败时,您需要退出该函数或妥善处理它。

try {
    bitmap = BitmapFactory.decodeResource(context.getResources(),
            res_id);

} catch (Exception e) {
    e.printStackTrace();
    // here you need to get out of the function 
    // or recover gracefully
    //TODO set the bitmap to a default bitmap.
    //TODO or return a null;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何克服我的Android应用程序中的OutOfMemory错误?

来自分类Dev

我似乎无法为Rails应用程序生成迁移,如何克服此错误?

来自分类Dev

有时我的Bitmap繁重的Android应用程序会出现OutOfMemory错误

来自分类Dev

我的android应用程序中的线程错误

来自分类Dev

我该如何解决Android应用程序中的“ getSystemservices(String)”错误

来自分类Dev

如何修复我的应用程序中的npm start错误?

来自分类Dev

我的 android 应用程序出现错误

来自分类Dev

如何使我的应用程序支持的平板电脑在android中?

来自分类Dev

我的应用程序中的权限错误

来自分类Dev

如何避免我的android应用程序显示在“最近的应用程序”列表中?

来自分类Dev

如何在Android的我的应用程序中打开其他应用程序的链接

来自分类Dev

Xamarin.Forms Android 应用程序引发 OutofMemory 错误 (XAML)

来自分类Dev

Android GCM应用程序强制在我的Android应用程序中的GCMRegistrar.checkManifest(this)行关闭,发生未知错误

来自分类Dev

如何布局我的Android应用程序?

来自分类Dev

如何翻译我的Android应用程序?

来自分类Dev

如何翻译我的Android应用程序?

来自分类Dev

如何布局我的android应用程序?

来自分类Dev

如何运行我的Android应用程序?

来自分类Dev

Android应用程序中的WaitingInMainSignalCatcherLoop错误

来自分类Dev

android应用程序ArrayList中的错误

来自分类Dev

Android 应用程序中的 ClassWithInstantRunDebug 错误

来自分类Dev

如何克服Gmail应用程序脚本中的“找不到方法addLabel(string)”?

来自分类Dev

如何在我的android应用程序的用户界面中调用另一个android应用程序?

来自分类Dev

我如何使用 android 库作为我在我的项目应用程序中创建的模块?

来自分类Dev

如何克服单页应用程序的弱点?

来自分类Dev

WPF 应用程序中 BitmapSource 的 OutOfMemory 异常

来自分类Dev

如何获取特定登录名的公共Facebook页面数据(应用程序)到我的android应用程序中?

来自分类Dev

Android:如何使用我的应用程序中的 whatsapp、facebook、gmail 等发送应用程序邀请消息

来自分类Dev

如何在我自己的 Android 应用程序中启动另一个应用程序?

Related 相关文章

  1. 1

    如何克服我的Android应用程序中的OutOfMemory错误?

  2. 2

    我似乎无法为Rails应用程序生成迁移,如何克服此错误?

  3. 3

    有时我的Bitmap繁重的Android应用程序会出现OutOfMemory错误

  4. 4

    我的android应用程序中的线程错误

  5. 5

    我该如何解决Android应用程序中的“ getSystemservices(String)”错误

  6. 6

    如何修复我的应用程序中的npm start错误?

  7. 7

    我的 android 应用程序出现错误

  8. 8

    如何使我的应用程序支持的平板电脑在android中?

  9. 9

    我的应用程序中的权限错误

  10. 10

    如何避免我的android应用程序显示在“最近的应用程序”列表中?

  11. 11

    如何在Android的我的应用程序中打开其他应用程序的链接

  12. 12

    Xamarin.Forms Android 应用程序引发 OutofMemory 错误 (XAML)

  13. 13

    Android GCM应用程序强制在我的Android应用程序中的GCMRegistrar.checkManifest(this)行关闭,发生未知错误

  14. 14

    如何布局我的Android应用程序?

  15. 15

    如何翻译我的Android应用程序?

  16. 16

    如何翻译我的Android应用程序?

  17. 17

    如何布局我的android应用程序?

  18. 18

    如何运行我的Android应用程序?

  19. 19

    Android应用程序中的WaitingInMainSignalCatcherLoop错误

  20. 20

    android应用程序ArrayList中的错误

  21. 21

    Android 应用程序中的 ClassWithInstantRunDebug 错误

  22. 22

    如何克服Gmail应用程序脚本中的“找不到方法addLabel(string)”?

  23. 23

    如何在我的android应用程序的用户界面中调用另一个android应用程序?

  24. 24

    我如何使用 android 库作为我在我的项目应用程序中创建的模块?

  25. 25

    如何克服单页应用程序的弱点?

  26. 26

    WPF 应用程序中 BitmapSource 的 OutOfMemory 异常

  27. 27

    如何获取特定登录名的公共Facebook页面数据(应用程序)到我的android应用程序中?

  28. 28

    Android:如何使用我的应用程序中的 whatsapp、facebook、gmail 等发送应用程序邀请消息

  29. 29

    如何在我自己的 Android 应用程序中启动另一个应用程序?

热门标签

归档