我正在尝试制作像应用程序一样的照片库,但是当我将位图对象添加到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就像照片一样都不正确吗?

iOS |像照片浏览器一样的照片应用程序

像whatsapp一样加载联系人

Swift - 如何像在 App Store 中一样共享应用链接

制作像回旋镖一样的视频循环效果

尝试打开照片库Swift时横向锁定不起作用