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);
}
答案 0 :(得分:0)
您应该使用像Android-Universal-Image-Loader这样的图像缓存库,而不是将所有位图添加到arraylist 这就是你如何将它与文件一起使用
ImageLoader.getInstance().displayImage(Uri.decode(Uri.fromFile(new File(pathToFile)).toString()), viewHolder.svg,options);}});