ImageLoader图片多线程加载

来源:互联网 发布:linux swap 释放 编辑:程序博客网 时间:2024/05/16 10:39

imageLoader是一款强大的框架,支持图片缓存,图片的多线程下载,提高了图片加载的效率的同时,为用户节省了流量,下面简单介绍一下Imageloader的配置过程

1、ImageLoader配置
新建一个Android项目,下载JAR包添加到工程libs目录下,
2、AndroidManifest.xml

<manifest>      <uses-permission android:name="android.permission.INTERNET" />      <!-- Include next permission if you want to allow UIL to cache images on SD card -->      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />      ...      <application android:name="MyApplication">          ...      </application>  </manifest>  

3、ImageLoader配置
新建一个Android项目,下载JAR包添加到工程libs目录下,
1)默认配置

 //创建默认的ImageLoader配置参数          ImageLoaderConfiguration configuration = ImageLoaderConfiguration                  .createDefault(this);         //Initialize ImageLoader with configuration.          ImageLoader.getInstance().init(configuration); 

2)自定义配置

File cacheDir = StorageUtils.getCacheDirectory(context);  ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)          .memoryCacheExtraOptions(480, 800) // default = device screen dimensions          .diskCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null)          .taskExecutor(...)          .taskExecutorForCachedImages(...)          .threadPoolSize(3) // default          .threadPriority(Thread.NORM_PRIORITY - 1) // default          .tasksProcessingOrder(QueueProcessingType.FIFO) // default          .denyCacheImageMultipleSizesInMemory()          .memoryCache(new LruMemoryCache(2 * 1024 * 1024))          .memoryCacheSize(2 * 1024 * 1024)          .memoryCacheSizePercentage(13) // default          .diskCache(new UnlimitedDiscCache(cacheDir)) // default          .diskCacheSize(50 * 1024 * 1024)          .diskCacheFileCount(100)          .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default          .imageDownloader(new BaseImageDownloader(context)) // default          .imageDecoder(new BaseImageDecoder()) // default          .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default          .writeDebugLogs()          .build();  

4、xml布局文件

<?xml version="1.0" encoding="utf-8"?>  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="fill_parent"      android:layout_height="fill_parent">      <ImageView          android:layout_gravity="center"          android:id="@+id/image"          android:src="@drawable/ic_empty"          android:layout_width="wrap_content"          android:layout_height="wrap_content" />  </FrameLayout>  

5、主代码调用

final ImageView mImageView = (ImageView) findViewById(R.id.image);          String imageUrl = "https://lh6.googleusercontent.com/-55osAWw3x0Q/URquUtcFr5I/AAAAAAAAAbs/rWlj1RUKrYI/s1024/A%252520Photographer.jpg";          ImageSize mImageSize = new ImageSize(100, 100);          ImageLoader.getInstance().loadImage(imageUrl, mImageSize, new SimpleImageLoadingListener(){              @Override              public void onLoadingComplete(String imageUri, View view,                      Bitmap loadedImage) {                  super.onLoadingComplete(imageUri, view, loadedImage);                  mImageView.setImageBitmap(loadedImage);              }          });  
0 0
原创粉丝点击