当前位置:首页 > 芯闻号 > 充电吧
[导读]特点多线程图片加载尽可能多的配置选项(线程池,加载器,解析器,内存/磁盘缓存,显示参数等等)图片可以缓存在内存中,或者设备文件目录下,或者SD卡中可以监听加载进度可以自定义显示每一张图片时都带不同参数

特点


多线程图片加载尽可能多的配置选项(线程池,加载器,解析器,内存/磁盘缓存,显示参数等等)图片可以缓存在内存中,或者设备文件目录下,或者SD卡中可以监听加载进度可以自定义显示每一张图片时都带不同参数支持Widget


jar包下载


1.自定义XXXAppllication类,初始化ImageLoader


public class XXXApplication extends Application {
	@Override
	public void onCreate() {
		super.onCreate();

        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
	        .denyCacheImageMultipleSizesInMemory()
	        .memoryCache(new LruMemoryCache(2 * 1024 * 1024))
	        .memoryCacheSize(2 * 1024 * 1024)
	        .discCacheSize(50 * 1024 * 1024)
	        .denyCacheImageMultipleSizesInMemory()  
            .discCacheFileNameGenerator(new Md5FileNameGenerator())  
            .tasksProcessingOrder(QueueProcessingType.LIFO)  
	        .discCacheFileCount(100)
	        .writeDebugLogs()
            .build();
        ImageLoader.getInstance().init(config);
	}
}


2.在AndroidManifest.xml文件的application标签里加入


android:name=".XXXApplication"


3.使用imageloader


public class ImageManager{

	 public static void Load(String imgUrl,ImageView imageView){
		ImageLoader.getInstance().displayImage(imgUrl, imageView);
	 }

	 public static void Load(String imgUrl,ImageView imageView,DisplayImageOptions o){
		 ImageLoader.getInstance().displayImage(imgUrl, imageView,o);
	 }
}


4.部分参数介绍


     //设置图片在下载期间显示的图片
     showStubImage(R.drawable.ic_launcher)
 
     //设置图片Uri为空或是错误的时候显示的图片
     showImageForEmptyUri(R.drawable.ic_empty)
 
     //设置图片加载/解码过程中错误时候显示的图片
     showImageOnFail(R.drawable.ic_error)
 
     //设置图片在下载前是否重置,复位
     resetViewBeforeLoading()
 
     //设置下载的图片是否缓存在内存中
     cacheInMemory()
 
     //设置下载的图片是否缓存在SD卡中
     cacheOnDisc()
 
     //设置图片的解码类型
     bitmapConfig(Bitmap.Config.RGB_565)
 
     //设置图片的解码配置
     decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)
 
     //设置图片下载前的延迟
     delayBeforeLoading(int delayInMillis)
 
     //设置额外的内容给ImageDownloader
     extraForDownloader(Object extra)
 
     //设置图片加入缓存前,对bitmap进行设置
     preProcessor(BitmapProcessor preProcessor)
 
     //设置显示前的图片,显示后这个图片一直保留在缓存中
     postProcessor(BitmapProcessor postProcessor)
 
     //设置图片以如何的编码方式显示
     imageScaleType(ImageScaleType imageScaleType)

/**
 * 设置图片的显示方式
 * @param displayer
 */
displayer(BitmapDisplayer displayer)
displayer:
          RoundedBitmapDisplayer(int roundPixels)设置圆角图片
          FakeBitmapDisplayer()这个类什么都没做
          FadeInBitmapDisplayer(int durationMillis)设置图片渐显的时间
     SimpleBitmapDisplayer()正常显示一张图片  


/**
 * 图片的缩放方式
 * @param imageScaleType
 */
    imageScaleType(ImageScaleType imageScaleType)
    imageScaleType:
                   EXACTLY :图像将完全按比例缩小的目标大小
                   EXACTLY_STRETCHED:图片会缩放到目标大小完全
                   IN_SAMPLE_INT:图像将被二次采样的整数倍
                   IN_SAMPLE_POWER_OF_2:图片将降低2倍,直到下一减少步骤,使图像更小的目标大小
                   NONE:图片不会调整

/**
*DisplayImageOptions简单示例
*/
// 创建默认的DisplayImageOptions
DisplayImageOptions option_0=DisplayImageOptions.createSimple();
// 使用DisplayImageOptions.Builder()创建DisplayImageOptions
DisplayImageOptions options = new DisplayImageOptions.Builder()  
	.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
	.showStubImage(R.drawable.loading)  
	.showImageForEmptyUri(R.drawable.load_fail)  
	.showImageOnFail(R.drawable.load_fail)  
	.cacheInMemory(true)  
	.cacheOnDisc(true)    
	.build();


5.最后别忘了权限


    




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

我们手里每天基本都有多个事情要做,很多人为了在短时间内完成任务,于是,开启了“多线程”工作模式。比如:一边写代码,一边写工作总结,同时还在回复着工作群里的消息。

关键字: 多线程 工作阻力 代码

摘要:针对计算机端口扫描技术的优缺点,采用多线程技术,结合TCP全连接扫描,实现了基于C语言编程的网络端口扫描及危险端口关闭程序,旨在使端口关闭操作简单化。

关键字: 多线程 危险端口 简单化

摘要:阐述了一种基于GPRS和嵌入式Linux的远程图像监控系统设计和实现方法。该系统主要由嵌入式视频采集终端 和监控中心服务器组成。其中,嵌入式视频采集终端主要由摄像头视频采集模块、ARM模块、SIM900模块组成,监...

关键字: 通用分组无线业务 实时图像采集 多线程 信号量

一、前言二、MichaHofri算法三、测试代码四、总结一、前言在上一篇文章中,介绍了一种纯软件算法,用来实现临界区的保护功能,文章链接:C语言边角料2:用纯软件来代替Mutex互斥锁。首先明确一下:如果利用操作系统提供...

关键字: C语言 多线程 软件

作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录单片机中常用的环形缓冲区多线程...

关键字: 多线程 异步

|前言前两天做了一个导入的功能,导入开始的时候非常慢,导入2w条数据要1分多钟,后来一点一点的优化,从直接把list怼进Mysql中,到分配把list导入Mysql中,到多线程把list导入Mysql中。时间是一点一点的...

关键字: 多线程

近期看到有读者在公众号留言问有没有C多线程的学习方法,我这里特意总结了下,希望能对大家有所帮助。目录什么是多线程?为什么使用多线程?如何创建线程?joinable()?多线程参数传递方式锁原子变量条件变量async多线程...

关键字: 多线程

直接进入正题,发车!简述java内存模型(JMM)java内存模型定义了程序中各种变量的访问规则。其规定所有变量都存储在主内存,线程均有自己的工作内存。工作内存中保存被该线程使用的变量的主内存副本,线程对变量的所有操作都...

关键字: 多线程

直接进入正题,发车!简述java内存模型(JMM)java内存模型定义了程序中各种变量的访问规则。其规定所有变量都存储在主内存,线程均有自己的工作内存。工作内存中保存被该线程使用的变量的主内存副本,线程对变量的所有操作都...

关键字: 多线程

直奔主题,多个线程,一个共享变量,不断1。如果代码直接这样写,会产生线程安全问题。public class LongAdder {   private long count = 0L;   public void ad...

关键字: 多线程
关闭
关闭