使用ImageLoader框架中loadImage()方法
/**
* 全局的上下文, app已启动运行的第一个上下文,也是全局的上下文
* 配置一些 全局的 工具, 框架,等等(代码统计, 联网框架)
* 当整个程序退出, 这个上下文才消亡;
*
* 需要再清单文件中配置Application这个类--在资源文件Application标签下 android:name=".MApp"
*/
public class MApp extends Application {
private String tag = "MApp";
@Override
public void onCreate() {
super.onCreate();
Log.e(tag, "执行了MApp的 onCreate: " );
//初始化imageLoader框架
ImageLoaderConfiguration config = new ImageLoaderConfiguration
.Builder(this)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
.threadPoolSize(5)//线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024)
.discCacheSize(50 * 1024 * 1024)
.discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
.tasksProcessingOrder(QueueProcessingType.LIFO)
.discCacheFileCount(100) //缓存的文件数量
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.writeDebugLogs() // Remove for release app
.build();//开始构建
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);//全局初始化此配置
}
}
主界面:
public class MainActivity extends AppCompatActivity {
private String imageUrl = "https://img-my.csdn.net/uploads/201407/26/1406383213_4418.jpg";
private ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.image);
ImageLoader instance = ImageLoader.getInstance();
instance.loadImage(imageUrl, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
image.setImageBitmap(bitmap);
}
@Override
public void onLoadingCancelled(String s, View view) {
}
});
}
}