//主Activity
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.image);
}
public void imageLoad(View view){
//使用imageloader加载图片
// ImageLoader.getInstance().displayImage("http://p1.pstatp.com/list/39a80000a236833755b2",imageView);
//ImageLoader.getInstance().displayImage("http://p3.pstatp.com/video1609/37ca0002fc54a831c948",imageView,ImageLoaderUtils.getDefautOption());
ImageLoader.getInstance().displayImage("http://p3.pstatp.com/list/39a90000bbaa05b118eb",imageView,ImageLoaderUtils.getCircleOption());
}
}
//ImageLoaderUtils
public class ImageLoaderUtils {
/**
* 初始化imageloader的配置
* @param context
*/
public static void initConfigration(Context context) {
File cacheDir = StorageUtils.getCacheDirectory(context); //缓存文件夹路径
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.threadPoolSize(3)//一般就是3,,,1-5
.threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级,,,1-10
.tasksProcessingOrder(QueueProcessingType.FIFO) // default
.denyCacheImageMultipleSizesInMemory()//拒绝缓存加载内容相同但大小不同的图片
.memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
.memoryCacheSizePercentage(13) // default
.diskCache(new UnlimitedDiskCache(cacheDir)) // default 可以自定义缓存路径
.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
.diskCacheFileCount(100) // 可以缓存的文件数量
// default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
.imageDownloader(new BaseImageDownloader(context)) // default
.imageDecoder(new BaseImageDecoder(true)) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs() // 打印debug log
.build(); //开始构建
//初始化
ImageLoader.getInstance().init(config);
}
public static DisplayImageOptions getDefautOption() {
DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.resetViewBeforeLoading(true)//在加载之前复位一下显示
.bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
.considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)
.build();
return imageOptions;
}
/**
* 圆形图片的配置
* @return
*/
public static DisplayImageOptions getCircleOption() {
DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.resetViewBeforeLoading(true)//在加载之前复位一下显示
.bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
.considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)
.displayer(new CircleBitmapDisplayer())//圆形显示
.build();
return imageOptions;
}
/**
* 加载圆角图片
* @return
*/
public static DisplayImageOptions getBoundOption() {
DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
.cacheOnDisk(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.resetViewBeforeLoading(true)//在加载之前复位一下显示
.bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
.considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)
.displayer(new RoundedBitmapDisplayer(20))//指定加载圆角的大小
.build();
return imageOptions;
}
}
//ImageApplication
public class ImageApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderUtils.initConfigration(this);
}
}
//BaseApplication
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//进行imageLoader的默认配置...上下文
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);
//初始化一下imageloader
ImageLoader.getInstance().init(configuration);
}
}