前提準備(下載ImageLoager的Library):
http://download.csdn.net/detail/qq_29461259/9197705
Step1:在application中初始化ImageLoader的配置
<span style="font-size:14px;">public class MyApplication extends Application {
@Override
public void onCreate() {
//配置ImageLoaderConfiguration
initImageLoader(this);
}
public static void initImageLoader(Context context) {
// This configuration tuning is custom. You can tune every option, you may tune some of them,
// or you can create default configuration by
// ImageLoaderConfiguration.createDefault(this);
// method.
ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context);
config.threadPriority(Thread.NORM_PRIORITY - 2);//配置下載圖片的線程優先級
config.denyCacheImageMultipleSizesInMemory();//不會在內存中緩存多個大小的圖片
config.diskCacheFileNameGenerator(new Md5FileNameGenerator());//爲了保證圖片名稱唯一
config.diskCacheSize(50 * 1024 * 1024); // 50 MiB
//內存緩存大小默認是:app可用內存的1/8
config.tasksProcessingOrder(QueueProcessingType.LIFO);</span>
Step2:定義加載大圖還是小圖對應的options<span style="font-size:14px;">public class ImageLoaderOptions {
//在顯示小圖的選項
public static DisplayImageOptions list_options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_default)// 加載過程中顯示什麼圖片
.showImageForEmptyUri(R.drawable.ic_default)// url爲空的時候顯示什麼圖片
.showImageOnFail(R.drawable.ic_default)// 加載失敗顯示什麼圖片
.cacheInMemory(true)// 在內存緩存
.cacheOnDisk(true)// 在硬盤緩存
.considerExifParams(true)// 會識別圖片的方向信息
.displayer(new FadeInBitmapDisplayer(500)).build();// 漸漸顯示的動畫
// .displayer(new RoundedBitmapDisplayer(100)).build();//顯示圓角或圓形圖片
//在顯示大圖的時候的選項,
public static DisplayImageOptions pager_options = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.ic_default)
.showImageOnFail(R.drawable.ic_default)
.resetViewBeforeLoading(true)//在ImageView顯示圖片之前先清空已有的圖片內容
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY)//會進一步將按照ImageView的寬高來縮放
.bitmapConfig(Bitmap.Config.RGB_565)//設置顏色的渲染模式,是比較節省內存的模式
.considerExifParams(true)
.displayer(new FadeInBitmapDisplayer(300)).build();</span>
}
Step3:獲取ImageLoader實例並加載圖片
<span style="font-size:14px;">public class MainActivity extends Activity {
private int length;
private ImageLoader imageLoader;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//要顯示的圖片個數
length = Images.imageUrls.length;
//獲取imageloader
imageLoader = ImageLoader.getInstance();
ListView listview = (ListView) findViewById(R.id.listview);
MyAdapter MyAdapter = new MyAdapter();
listview.setAdapter(MyAdapter);
}
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(getApplicationContext(), R.layout.activity_iamgevie, null);
ImageView iamgeview = (ImageView) view.findViewById(R.id.imageView);
imageLoader.displayImage(Images.imageUrls[position], iamgeview, ImageLoaderOptions.pager_options);
return view;
}
}
}</span>