在使用这个框架的时候,我们必须要配置一个DisplayImageOptions对象来作为ImageLoader.getInstance().displayImage()中的参数,所以很有必要讲解这个对象的配制方法。讲解完了后其实这个框架我们就会了解的比较详尽了。
1.默认的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
DisplayImageOptions
options
=
new
DisplayImageOptions
.
Builder
(
)
.
showImageOnLoading
(
R
.
drawable
.
ic_stub
)
// resource or drawable
.
showImageForEmptyUri
(
R
.
drawable
.
ic_empty
)
// resource or drawable
.
showImageOnFail
(
R
.
drawable
.
ic_error
)
// resource or drawable
.
resetViewBeforeLoading
(
false
)
// default
.
delayBeforeLoading
(
1000
)
.
cacheInMemory
(
false
)
// default
.
cacheOnDisk
(
false
)
// default
.
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
.
handler
(
new
Handler
(
)
)
// default
.
build
(
)
;
|
example:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
/**
* 显示图片的所有配置
* @return
*/
private
DisplayImageOptions
getWholeOptions
(
)
{
DisplayImageOptions
options
=
new
DisplayImageOptions
.
Builder
(
)
.
showImageOnLoading
(
R
.
drawable
.
loading
)
//设置图片在下载期间显示的图片
.
showImageForEmptyUri
(
R
.
drawable
.
ic_launcher
)
//设置图片Uri为空或是错误的时候显示的图片
.
showImageOnFail
(
R
.
drawable
.
error
)
//设置图片加载/解码过程中错误时候显示的图片
.
cacheInMemory
(
true
)
//设置下载的图片是否缓存在内存中
.
cacheOnDisk
(
true
)
//设置下载的图片是否缓存在SD卡中
.
considerExifParams
(
true
)
//是否考虑JPEG图像EXIF参数(旋转,翻转)
.
imageScaleType
(
ImageScaleType
.
IN_SAMPLE_INT
)
//设置图片以如何的编码方式显示
.
bitmapConfig
(
Bitmap
.
Config
.
RGB_565
)
//设置图片的解码类型
//.decodingOptions(BitmapFactory.Options decodingOptions)//设置图片的解码配置
.
delayBeforeLoading
(
0
)
//int delayInMillis为你设置的下载前的延迟时间
//设置图片加入缓存前,对bitmap进行设置
//.preProcessor(BitmapProcessor preProcessor)
.
resetViewBeforeLoading
(
true
)
//设置图片在下载前是否重置,复位
.
displayer
(
new
RoundedBitmapDisplayer
(
20
)
)
//不推荐用!!!!是否设置为圆角,弧度为多少
.
displayer
(
new
FadeInBitmapDisplayer
(
100
)
)
//是否图片加载好后渐入的动画时间,可能会出现闪动
.
build
(
)
;
//构建完成
return
options
;
}
|
2.一般常用的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/**
* 设置常用的设置项
* @return
*/
private
DisplayImageOptions
getSimpleOptions
(
)
{
DisplayImageOptions
options
=
new
DisplayImageOptions
.
Builder
(
)
.
showImageOnLoading
(
R
.
drawable
.
loading
)
//设置图片在下载期间显示的图片
.
showImageForEmptyUri
(
R
.
drawable
.
ic_launcher
)
//设置图片Uri为空或是错误的时候显示的图片
.
showImageOnFail
(
R
.
drawable
.
error
)
//设置图片加载/解码过程中错误时候显示的图片
.
cacheInMemory
(
true
)
//设置下载的图片是否缓存在内存中
.
cacheOnDisk
(
true
)
//设置下载的图片是否缓存在SD卡中
.
imageScaleType
(
ImageScaleType
.
IN_SAMPLE_INT
)
//设置图片以如何的编码方式显示
.
bitmapConfig
(
Bitmap
.
Config
.
RGB_565
)
//设置图片的解码类型
.
build
(
)
;
//构建完成
return
options
;
}
|
注意:这里面的参数当然也是可以随意修改的,根据项目需要再定!
几点说明:
1).imageScaleType(ImageScaleType imageScaleType) //设置图片的缩放方式,如:
1
|
.
imageScaleType
(
ImageScaleType
.
IN_SAMPLE_INT
)
|
其中,mageScaleType的选择值:
EXACTLY :图像将完全按比例缩小的目标大小
EXACTLY_STRETCHED:图片会缩放到目标大小完全
IN_SAMPLE_INT:图像将被二次采样的整数倍
IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小
NONE:图片不会调整
2).displayer(BitmapDisplayer displayer) // 设置图片的显示方式,如:
1
|
.
displayer
(
new
FadeInBitmapDisplayer
(
100
)
)
|
其中,displayer的选择值:
RoundedBitmapDisplayer(int roundPixels)设置圆角图片,不推荐!!!
FakeBitmapDisplayer()这个类什么都没做
FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间
SimpleBitmapDisplayer()正常显示一张图片
3.避免OOM
.bitmapConfig(Bitmap.Config.RGB_565) //默认是ARGB_8888,使用RGB_565会比使用ARGB_8888少消耗2倍的内
使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT) 或imageScaleType(ImageScaleType.EXACTLY)
避免使用.displayer(new RoundedBitmapDisplayer(20)) //他会创建新的ARGB_8888格式的Bitmap对象;
Activity代码:
参考自:
http://blog.csdn.net/xiaanming/article/details/26810303
http://blog.csdn.net/vipzjyno1/article/details/23206387