UniversalImageLoader源码分析之一、开发入门
2014-12-24 22:43
190 查看
前言:前几天分析了一个比较简单的图片开源项目SmartImageView,但是在项目开发中SmartImageView还是太轻量级了,在优化方面做的还不够,当然我们可以自己写出漂亮的框架,但是有点需要注意的是毕竟我们不能拿用户作为我们的测试,开发中还是要以最小的时间写出最优的代码的。闲扯远了,这里接着上次继续分析图片的开源框架,继续分析UniversalImageLoader。
可以看到这里配置有sdcard文件名加密、sdcard缓存大小、打印日志等等,当然这里可以根据需求配置,然后在Manifest.xml中设置Application。
OK,到此Demo示例已经编写完毕,下一篇将讲解图片加载的过程分析。
一、项目下载
该项目是目前开发中应用最多的图片项目之一了,依然是托管在GitHub上。下载链接二、示例介绍
在该示例中,在Activity中间有个ImageView,在下方有个Button,点击Button通过UniversalImageLoader加载图片并展示到屏幕中。三、实现过程
1. 添加框架到项目
将UniversalImageLoader作为库添加到项目,或者打成Jar包的形式引入工程,很初级的东西,其他博客中也很多提及这里不再细说。下图所示,左图是将UniversalImageLoader作为库,右图是将该库添加到示例项目中。2. AppLIcation类编写
编写UILApplication继承Application在onCreat()方法初始化ImageLoader的全局配置。public class UILApplication extends Application { @Override public void onCreate() { super.onCreate(); initImageLoader(getApplicationContext()); } public static void initImageLoader(Context context) { ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) .threadPriority(Thread.NORM_PRIORITY - 2) .denyCacheImageMultipleSizesInMemory() .diskCacheFileNameGenerator(new Md5FileNameGenerator()) .diskCacheSize(50 * 1024 * 1024) // 50 Mb .tasksProcessingOrder(QueueProcessingType.LIFO) .writeDebugLogs() // Remove for release app .build(); // Initialize ImageLoader with configuration. ImageLoader.getInstance().init(config); } }
可以看到这里配置有sdcard文件名加密、sdcard缓存大小、打印日志等等,当然这里可以根据需求配置,然后在Manifest.xml中设置Application。
<application android:name=".UILApplication" <span style="white-space:pre"> </span>...... </application>
3. Options配置
Options配置为在加载某张图片时候的配置:/** 初始化Options设置 */ private void initOptions() { options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.ic_launcher) .showImageOnFail(R.drawable.ic_launcher).cacheInMemory(true) .cacheOnDisk(true).bitmapConfig(Bitmap.Config.RGB_565).build(); }
4. 加载图片
在按钮的点击事件中加载图片:@Override public void onClick(View v) { String uri = "http://ww2.sinaimg.cn/large/49aaa343jw1dgwd0qvb4pj.jpg"; ImageLoader.getInstance().displayImage(uri, iv, options); }
5. 添加权限
因为有访问网络和缓存到sdcard的操作,所以要添加相应的权限:<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
OK,到此Demo示例已经编写完毕,下一篇将讲解图片加载的过程分析。
四、下载传送门
UniversalImageLoader示例代码五、系列资源
《SmartImageView源码分析》相关文章推荐
- iPhone开发入门篇 “Hello World”分析代码
- 嵌入式开发入门(4)—驱动入门之时序图分析【20121211修改,未完】
- 深入分析JavaWeb Item1 -- JavaWeb开发入门
- 学习Spark的入门教程——《Spark核心源码分析与开发实战》
- 深入分析JavaWeb 43 -- Struts2开发入门
- Android 入门开发指南之五—分析应用程序
- 图解谷歌地球使用入门、谷歌地球COM API 开发入门、谷歌地球使用的初步协议分析
- 深入分析JavaWeb Item43 -- Struts2开发入门
- 深入分析JavaWeb Item23 -- jsp自定义标签开发入门
- Android开发入门之Notification用法分析
- android开发入门之 应用结构分析
- Android开发入门教程--2.Android应用程序结构分析
- 股票分析技术入门(开发必备)
- 深入分析JavaWeb Item50 -- Spring开发入门
- Node.js开发入门—HelloWorld再分析
- iPhone开发入门篇 “Hello World”分析代码
- android游戏开发入门: 贪吃蛇 源代码分析
- Android开发入门教程--Android应用程序结构分析
- 深入分析JavaWeb 23 -- jsp自定义标签开发入门
- Android开发入门之Service用法分析