这是关于在AndroidStudio中使用片段进行相机开发的五部分系列中的第二部分。如果你还没有克隆我放在GitHub上的示例程序,请先到这里获取***代码。本文主要包括“SimplePhotoGalleryListFragment”片段。注:本例中涉及的ListFragment的用法,详细可参见文章ListFragments。AsyncTaskLoaders和Fragments将整个图片库加载到List是一个计算量大、强度高的任务。因此,我们希望借助Android提供的AsyncTaskLoader,通过异步加载来解决这个问题。在这里,我编写了一个自定义的AsyncTaskLoader工具类来加载图库中的图片。我命名为:PhotoGalleryImageProvider,可以在源码中找到。Fragments为异步任务的Loader提供了一个特殊的接口来自动触发异步加载任务。我们的图库列表看起来像Fragment中的以下代码:newPhotoAdapter(context,R.layout.photo_item,mPhotoListItem,false);//Preparetheloader.Eitherre-connectwithanexistingone,//orstartanewone.getLoaderManager().initLoader(0,null,this);}请注意***这一行:getLoaderManager().initLoader(0,null,this);这一行的作用是自动开启AsyncLoader,AsyncLoader的相关代码放在Class文件后面。/***用于在后台加载照片的LoaderHandlers。*/@OverridepublicLoaderonCreateLoader(intid,Bundleargs){//当需要创建一个新的Loader时调用这个。//sampleonlyhasoneLoaderwithnoarguments,soitissimple.returnnewPhotoGalleryAsyncLoader(picture)成功获取后台所有任务到gallery;getActivity,会回调如下函数:@OverridepublicvoidonLoadFinished(Loader
loader,Listdata){//SetthenewdatainthemAdapter.mPhotoListItem.clear();for(inti=0;i
