【发布时间】:2023-04-11 12:51:01
【问题描述】:
我是 android 编程新手,我在加载位图时遇到问题,我有将近 92 个位图需要加载。但应用程序在 9 或 10 个位图后崩溃.. 请帮助我
这是错误 抛出 OutOfMemoryError “无法分配 22050012 字节分配,1805056 可用字节和 1762KB 直到 OOM” 09-05 19:49:36.188 2615-2615/com.example.zeeshanahmedawan.yourworriestheirsolutions D/skia: --- 缩放位图分配失败
mPages = new ArrayList<Bitmap>();
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p1));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p2));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p3));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p4));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p5));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p6));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p7));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p8));
mPages.add(BitmapFactory.decodeResource(getResources(), R.drawable.p9));
【问题讨论】:
-
使用 LogCat 检查与您的崩溃相关的 Java 堆栈跟踪:stackoverflow.com/questions/23353173/…。
-
抛出 OutOfMemoryError “无法分配 22050012 字节分配,1805056 空闲字节和 1762KB 直到 OOM”09-05 19:49:36.188 2615-2615/com.example.zeeshanahmedawan.yourworriestheirsolutions D/skia: --- 缩放位图分配失败@CommonsWare
-
我会说你的做法是错误的。将膨胀的位图存储在数组中会不必要地使用大量内存。为什么不只保留资源 ID 的数组或列表,并且仅在需要时(即在 RecyclerView 的适配器中)膨胀?
-
...它确实让你感到惊讶,对吧?