App类:
package com.qy.day08_imageloader;
import android.app.Application;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import java.io.File;
//第二步: 继承Application
public class App extends Application {
//第三步:调用onCreate方法
@Override
public void onCreate() {
super.onCreate();
//第四步:导入包
//第四步:设置图片路径
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/Image");
//第五步:加载图片的设置
DisplayImageOptions options = new DisplayImageOptions.Builder()
.displayer(new RoundedBitmapDisplayer(100))//设置圆角
.build();
//第六步:图像加载器配置
ImageLoaderConfiguration loader = new ImageLoaderConfiguration.Builder(this)
.defaultDisplayImageOptions(options)//把我们写的设置添加到配置中
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//MD5这种方式生成缓存文件的名字
.diskCache(new UnlimitedDiscCache(file))//UnlimitedDiskCache 限制这个图片的缓存路径
.diskCacheFileCount(50)//配置sdcard缓存文件的数量
.diskCacheSize(50 * 1024 * 1024)//在sdcard缓存50MB
.build(); //构建
// 第七步:获得实例
ImageLoader.getInstance().init(loader);
//第七步: 注册
// <!--第一步: 权限-->
// <!--网络-->
// <uses-permission android:name="android.permission.INTERNET"/>
// <!--读写-->
// <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
// <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
// <application
// android:name=".App"
}
}
主方法MainActivity:
package com.qy.day08_imageloader;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageView);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String path="json中的 图片路径";
//第八步:加载图片缓存
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true)//让图片进行内存缓存
.cacheOnDisk(true)//让图片进行sdcard缓存
.build();
//第九步: 加载图片(注意 需要SD卡读写权限,否则出不来效果)
//参数(图片的网络路径,图片空间,显示图象选项)
ImageLoader.getInstance().displayImage(path, imageView, options);
}
});
}
}