Android 开源框架Universal-Image-Loader的配置

xiaoxiao2021-02-28  164

在使用这个框架的时候,我们必须要配置一个DisplayImageOptions对象来作为ImageLoader.getInstance().displayImage()中的参数,所以很有必要讲解这个对象的配制方法。讲解完了后其实这个框架我们就会了解的比较详尽了。

 

1.默认的配置

 

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(); 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:

 

/** * 显示图片的所有配置 * @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; } 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.一般常用的配置

 

/** * 设置常用的设置项 * @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 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)  //设置图片的缩放方式,如:

 

.imageScaleType(ImageScaleType.IN_SAMPLE_INT) 1 . imageScaleType ( ImageScaleType . IN_SAMPLE_INT )

 

其中,mageScaleType的选择值: EXACTLY :图像将完全按比例缩小的目标大小 EXACTLY_STRETCHED:图片会缩放到目标大小完全 IN_SAMPLE_INT:图像将被二次采样的整数倍 IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小 NONE:图片不会调整

 

2).displayer(BitmapDisplayer displayer)  // 设置图片的显示方式,如:

 

.displayer(new FadeInBitmapDisplayer(100)) 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

转载请注明原文地址: https://www.6miu.com/read-59591.html

最新回复(0)