xUtils中BitmapUtils模块的使用实例
2016-09-18 08:32
134 查看
对于res里的图片,程序运行时就加载在内存中了,所以没必要使用BitmapUtils了
据作者解释,BitmapUtils没有采用单例模式,这样可以采用不同的默认配置来加载不同的图片.
BitmapUtils一共有两种配置BitmapGlobalConfig和BitmapDisplayConfig
BitmapGlobalConfig主要配置磁盘缓存路径,程序缓存大小(这个大小在源码中有限制),
BitmapDisplayConfig主要配置异步加载未完成时临时显示的图片,加载失败的图片,显示图片的最大Size,
加载图片动画,图片是否翻转,是否显示原图(不建议使用)等.
BitmapUtils模块:
加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
据作者解释,BitmapUtils没有采用单例模式,这样可以采用不同的默认配置来加载不同的图片.
BitmapUtils一共有两种配置BitmapGlobalConfig和BitmapDisplayConfig
BitmapGlobalConfig主要配置磁盘缓存路径,程序缓存大小(这个大小在源码中有限制),
BitmapDisplayConfig主要配置异步加载未完成时临时显示的图片,加载失败的图片,显示图片的最大Size,
加载图片动画,图片是否翻转,是否显示原图(不建议使用)等.
BitmapUtils模块:
加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
BitmapUtils bitmapUtils = new BitmapUtils(this); // 加载网络图片 bitmapUtils.display(testImageView, "http://bbs.lidroid.com/static/image/common/logo.png"); // 加载本地图片(路径以/开头, 绝对路径) bitmapUtils.display(testImageView, "/sdcard/test.jpg"); // 加载assets中的图片(路径以assets开头) bitmapUtils.display(testImageView, "assets/img/wallpaper.jpg"); // 使用ListView等容器展示图片时可通过PauseOnScrollListener控制滑动和快速滑动过程中时候暂停加载图片 listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true)); listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true, customListener));
实例:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.act_iv); iv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "here", Toast.LENGTH_SHORT).show(); } }); } public void bitmaputils_onclick(View v) { bm = new BitmapUtils(this); bm.configMemoryCacheEnabled(true); bm.configDiskCacheEnabled(true); bm.configDefaultLoadFailedImage(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher)); bm.display(iv, "http://i-7.vcimg.com/crop/d3b536b39a86f6a62280b97b1ab3a68a309526(600x)/thumb.jpg"); }
相关文章推荐
- Struts从0开始6:Struts的模块使用实例
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)
- Flex 使用ModuleLoader加载模块及卸载模块的实例
- Ruby中使用SWIG编写ruby扩展模块实例
- python中的hashlib和base64加密模块使用实例
- 一个使用泛型堆栈模块创建的两个容纳不同类型数据的实例
- python使用marshal模块序列化实例
- python中使用smtplib和email模块发送邮件实例
- python使用urllib2模块获取gravatar头像实例
- nodejs命令行参数处理模块commander使用实例
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)
- NodeJS的url截取模块url-extract的使用实例
- python WMI模块的使用实例
- python中使用smtplib和email模块发送邮件实例
- python模块restful使用方法实例
- Struts 从零开始 六、Struts的模块使用实例
- vb连接sql数据库的模块以及使用实例(详细)
- 二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
- 在python中的socket模块使用代理实例
- python使用marshal模块序列化实例