课程/Android/移动开发
Android常见的三种图片加载库
-
-
慕先生0560154
2017-08-23
- 注意,为避免OOM
1)设置线程池内加载的数量时,官方推荐最好设置1-5之间
threadPoolSize(3)
2) 配置解码格式时,设置成565方式,默认是888方式(比较消耗内存)
bitmapConfig(Bitmap.Config.RGB_565); //设置图片解码类型
3)尽量使用displayImage方法
因为loadImage方法需要再次手动调用setImageBitmap方法,又消耗了一次内存
-
截图
0赞 · 0采集
-
-
慕先生0560154
2017-08-23
- //第二种加载图片方式,通过loadImage方法
//与displayImage方法不同之处,是必须要手动调用setImageBitmap方法将图片塞到imageView控件里
//还有一种不同是,displayImage方法对对象的引用是弱引用,推荐
ImageSize imageSize = new ImageSize(800,800);
imageLoader.loadImage("http://img1.gtimg.com/sports/pics/hv1/254/243/2090/135964469.jpg",imageSize, new ImageLoadingListener(){
@Override
public void onLoadingStarted(String arg0, View arg1){
pd.show(); //开始加载时,显示对话框
}
@Override
public void onLoadingFailed(String arg0, View arg1, FailReason arg2){
pd.dismiss();//加载失败时,关闭对话框
}
@Override
public void onLoadingComplete(String arg0, View arg1, Bitmap arg2){
pd.dismiss();//加载成功时,关闭对话框
iv.setImageBitmap(arg2); //加载结束时,必须手动调用setImageBitmap方法将图片塞到imageView控件里
}
@Override
public void onLoadingCancelled(String arg0, View arg1){
}
});
-
截图
0赞 · 0采集
-
-
慕先生0560154
2017-08-23
- 笔记分段 三
//方式二、不带自定义配置
imageLoader.displayImage("file:///storage/emulated/0/Pictures/Screenshots/dog.jpg",iv, new ImageLoadingListener(){
@Override
public void onLoadingStarted(String arg0, View arg1){
pd.show(); //开始加载时,显示对话框
}
@Override
public void onLoadingFailed(String arg0, View arg1, FailReason arg2){
pd.dismiss();//加载失败时,关闭对话框
}
@Override
public void onLoadingComplete(String arg0, View arg1, Bitmap arg2){
pd.dismiss();//加载成功时,关闭对话框
}
@Override
public void onLoadingCancelled(String arg0, View arg1){
//TODO
}
});
}
}
-
截图
0赞 · 0采集
-
-
慕先生0560154
2017-08-23
- 笔记分段 二
/**
设置自定义配置表
*/
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.girl) //设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.girl) //设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.girl)
.cacheInMemory(true)
.cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.RGB_565) //设置解码格式
.build();
//1)加载sd卡中的一个图片, url: file:///storage/emulated/0/Pictures/Screenshots/dog.jpg
//2)加载resource中的一个图片,url:“drawable://”+R.drawable.girl
//3)content://.../xx.jpg
//4) assets://funny.jpg
//5) http://形式
//方式一、带自定义配置
imageLoader.displayImage("file:///storage/emulated/0/Pictures/Screenshots/dog.jpg",iv, options, null);
-
截图
0赞 · 0采集
-
-
慕先生0560154
2017-08-23
- 3、Universal-Image_Loader用法讲解
笔记分段 一
1)导入项目
2)添加权限
3)自定义MyApplication类
自定义配置表
4)在新建的ACitivity中创建布局文件并演示
public class Mainactivity exends Activity{
private ImageView iv;
private ImageLoader imageLoader;
private ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
iv= (ImageView)findviewById(R.id.imageView);
imageLoader = ImageLoader.getInstance(); //单例模式
pd = new ProgressDialog(this);
pd.setTitle("提示");
pd.setMessage("图片加载中,请稍后...");
-
截图
0赞 · 0采集