我正在尝试制作像应用程序一样的照片库,但是当我将位图对象添加到arraylist时,我将钳制目标GC堆从128MB到128MB
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我正在尝试制作像应用程序一样的照片库,但是当我将位图对象添加到arraylist时,我将钳制目标GC堆从128MB到128MB相关的知识,希望对你有一定的参考价值。
for循环工作7次,但在应用程序崩溃之后。在内存图中它显示了124mb的级别。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
String path=Environment.getExternalStorageDirectory().toString()+"/Pictures";
File direct = new File(path);
File[] dirFiles=direct.listFiles();
ArrayList<Bitmap> arr= new ArrayList<>();
for (int i=0 ; i < dirFiles.length;i++){
Bitmap myBitmap = BitmapFactory.decodeFile(dirFiles[i].getAbsolutePath());
arr.add(myBitmap);
Log.v("image number",""+i);
}
//ImageAdapter imgAdp = new ImageAdapter(this,arr);
//ListView lv=(ListView)findViewById(R.id.rootView);
//lv.setAdapter(imgAdp);
}
答案
您应该使用像Android-Universal-Image-Loader这样的图像缓存库,而不是将所有位图添加到arraylist这就是你如何将它与文件一起使用
ImageLoader.getInstance().displayImage(Uri.decode(Uri.fromFile(new File(pathToFile)).toString()), viewHolder.svg,options);}});
以上是关于我正在尝试制作像应用程序一样的照片库,但是当我将位图对象添加到arraylist时,我将钳制目标GC堆从128MB到128MB的主要内容,如果未能解决你的问题,请参考以下文章
Facebook Graph API和FQL就像照片一样都不正确吗?