package com.itchina.uiload;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import com.itchina.uiload.aa.BKSImageDownloader;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener;
import com.nostra13.universalimageloader.utils.StorageUtils;
import java.io.File;
public class MainActivity extends AppCompatActivity {
private ImageView mIV;
String url = "https://.....图片加载的地址";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initUIL();//初始化UIL
mIV = (ImageView) findViewById(R.id.iv);
//加载图片例子
ImageLoader.getInstance().displayImage(url, mIV, getOption(), new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
//图片加载前
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
//加载失败
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
//加载完成
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
//加载取消
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
//进度条
}
});
}
/**
* 初始化ImageLoader
*/
private void initUIL() {
// ImageLoaderConfiguration config = ImageLoaderConfiguration.createDefault(this);
File cacheDir = StorageUtils.getCacheDirectory(this); //缓存文件夹路径
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
// .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽
// .diskCacheExtraOptions(480, 800, null) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
// .taskExecutor(Exec)
// .taskExecutorForCachedImages(...)
.threadPoolSize(5) // default 线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2) // 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) // 50 Mb sd卡(本地)缓存的最大值
.diskCacheFileCount(100) // 可以缓存的文件数量
// default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
.diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
/** 设置加载带有证书的HTTPS连接的关键配置*/
.imageDownloader(new BKSImageDownloader(this)) // 设置加载带有证书的HTTPS连接的关键配置
.imageDecoder(new BaseImageDecoder(true)) // default
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
.writeDebugLogs() // 打印debug log
.build(); //开始构建
ImageLoader.getInstance().init(config);
// url = "http://pic.pptbz.com/pptpic/201110/20111014111307895.jpg";
DisplayImageOptions options = getOption();
ImageLoader.getInstance().displayImage(url, mIV,options);
}
/**
* @return
* 配置UIL加载图片的参数
*/
public DisplayImageOptions getOption() {
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片
.resetViewBeforeLoading(false) // default 设置图片在加载前是否重置、复位
.delayBeforeLoading(1000) // 下载前的延迟时间
.cacheInMemory(true) // default 设置下载的图片是否缓存在内存中
.cacheOnDisk(false) // default 设置下载的图片是否缓存在SD卡中
// .preProcessor(....)
// .postProcessor(...)
// .extraForDownloader(...)
.considerExifParams(false) // default
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 设置图片以如何的编码方式显示
.bitmapConfig(Bitmap.Config.ARGB_8888) // default 设置图片的解码类型
// .decodingOptions() // 图片的解码设置
.displayer(new SimpleBitmapDisplayer()) // default 还可以设置圆角图片new RoundedBitmapDisplayer(20)
.handler(new Handler()) // default
.build();
return options;
}
}