Android第三方開源ImageLoader的使用(一)

前提準備(下載ImageLoager的Library):

http://download.csdn.net/detail/qq_29461259/9197705

Demo源碼下載地址

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>




發佈了38 篇原創文章 · 獲贊 11 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章