Android 应用程序因图像过多而终止
Android application killed because of many image
我开发 android 带有 GridList 的片段有很多图像项。当开始到这个片段时,暂停屏幕并慢慢开始。此外,当多次启动此片段(大约 3 次)时,应用程序被杀死。
代码:
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_tiro_com_arco), "Archery"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_ginastica_artistica), "Artistic Gymnastics"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_atletismo), "Athletics"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_badminton), "Badminton"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_basquetebol), "Basketball"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_volei_de_praia), "Beach Volleyball"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_ciclismo_bmx), "BMX Cycling"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_boxe), "Boxing"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_canoagem_slalom), "Canoe / Kayak Slalom"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_canoagem_velocidade), "Canoe / Kayak Sprint"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_saltos_ornamentais), "Diving"));
(多行同上)
无论如何,对于这种现象我可以尝试什么?你有文档或代码供我参考吗?
我是 Android 的初学者。所以我的问题看起来简单得可笑。但如果你给我答案,我真的很感激。谢谢:)
在清单文件的标签中使用这两行代码
但在 honeycomb (3.0) 之后得到支持
android:hardwareAccelerated="true"
android:largeHeap="true"
尝试阅读 Google 的指南 to 'Load Large Bitmaps Efficiently' and then to load bitmaps with AsyncTask,这应该会对您有所帮助。事实上,请阅读该指南中的所有 5 个主题。缩放图像并仅加载 GridView
中的缩略图。 :)
我开发 android 带有 GridList 的片段有很多图像项。当开始到这个片段时,暂停屏幕并慢慢开始。此外,当多次启动此片段(大约 3 次)时,应用程序被杀死。
代码:
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_tiro_com_arco), "Archery"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_ginastica_artistica), "Artistic Gymnastics"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_atletismo), "Athletics"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_badminton), "Badminton"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_basquetebol), "Basketball"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_volei_de_praia), "Beach Volleyball"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_ciclismo_bmx), "BMX Cycling"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_boxe), "Boxing"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_canoagem_slalom), "Canoe / Kayak Slalom"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_canoagem_velocidade), "Canoe / Kayak Sprint"));
mGridArray.add(new GridViewItem(getBitmap(R.drawable.rio2016_sports_pictogram_olympic_saltos_ornamentais), "Diving"));
(多行同上)
无论如何,对于这种现象我可以尝试什么?你有文档或代码供我参考吗?
我是 Android 的初学者。所以我的问题看起来简单得可笑。但如果你给我答案,我真的很感激。谢谢:)
在清单文件的标签中使用这两行代码 但在 honeycomb (3.0) 之后得到支持
android:hardwareAccelerated="true"
android:largeHeap="true"
尝试阅读 Google 的指南 to 'Load Large Bitmaps Efficiently' and then to load bitmaps with AsyncTask,这应该会对您有所帮助。事实上,请阅读该指南中的所有 5 个主题。缩放图像并仅加载 GridView
中的缩略图。 :)