Android知识点5-Universal_image_loader加载网络图片
来源:互联网 发布:kdl55w800b安装软件 编辑:程序博客网 时间:2024/06/07 11:45
开源框架的使用,使我们更快的开发,增加了效率,今天就来学习一下Universal_image_loader的用法。
转载请标明出处:http://blog.csdn.net/Bingsman/article/details/48246095
首先,去github上下载所需要的jar包,下载地址:https://github.com/nostra13/Android-Universal-Image-Loader;
接着就是搭配环境了
1-将下载的jar包放到工程的lib包,并创建一个显示图片的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ImageView android:id="@+id/imageview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /></RelativeLayout>
2-添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" > </uses-permission><uses-permission android:name="android.permission.INTERNET" > </uses-permission>
3-初始化配置有两种方法
(1)是默认配置(都是在onCreate方法中操作)
// 默认配置ImageLoaderConfiguration configuration =ImageLoaderConfiguration.createDefault(this);//初始化ImageLoader.getInstance().init(configuration);
(2)自己设置(一般项目都是自己配置)
// 自己配置 File cacheDir = StorageUtils.getCacheDirectory(MainActivity.this); // 缓存文件夹路径 ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder( MainActivity.this) .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽 .diskCacheExtraOptions(480, 800, null) // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个 .taskExecutor(null) .taskExecutorForCachedImages(null) .threadPoolSize(3) // default 线程池内加载的数量 .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级 .tasksProcessingOrder(QueueProcessingType.FIFO) // default .denyCacheImageMultipleSizesInMemory() .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) // 可以通过自己的内存缓存实现 .memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值 .memoryCacheSizePercentage(13) // default .diskCache(new UnlimitedDiskCache(cacheDir)) // default 可以自定义缓存路径 .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值 .diskCacheFileCount(100) // 可以缓存的文件数量 // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new // Md5FileNameGenerator())加密 .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) .imageDownloader(new BaseImageDownloader(MainActivity.this)) // default .imageDecoder(new BaseImageDecoder(false)) // default .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default .writeDebugLogs() // 打印debug log .build(); // 开始构建//初始化 ImageLoader.getInstance().init(configuration);
4-配置加载图片的选项
DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.default) // 默认图片 .showImageForEmptyUri(R.drawable.empty) // resource or drawable .showImageOnFail(R.drawable.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();
5-加载方式有
(1)loadimage()加载图片–ImageLoadingListener加载
//百度随便找一张图片就行String imageUrl = "http://a.hiphotos.baidu.com/image/h%3D200/sign=" + "af9259bf03082838770ddb148898a964/6159252dd42a2834bc76c4ab5fb5c9ea14cebfba.jpg"; //显示图片的配置 DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.default) .showImageOnFail(R.drawable.erron) .cacheInMemory(true) //缓存机制 .cacheOnDisk(true) .bitmapConfig(Bitmap.Config.RGB_565) .build(); //加载图片第一种方式:loadimage()--ImageLoadingListener加载图片 ImageLoader.getInstance().loadImage(imageUrl, new ImageLoadingListener() { @Override public void onLoadingCancelled(String arg0, View arg1) { // TODO Auto-generated method stub } @Override public void onLoadingComplete(String arg0, View arg1, Bitmap bm) { // TODO Auto-generated method stub imageView.setImageBitmap(bm); } @Override public void onLoadingFailed(String arg0, View arg1, FailReason arg2) { // TODO Auto-generated method stub } @Override public void onLoadingStarted(String arg0, View arg1) { // TODO Auto-generated method stub } });
(2)loadimage()加载图片–SimpleImageLoadingListener加载(使用的是缺省适配器模式)
//加载图片第一种方式:loadimage()--SimpleImageLoadingListener加载图片ImageLoader.getInstance().loadImage(imageUrl, new SimpleImageLoadingListener(){ @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { super.onLoadingComplete(imageUri, view, loadedImage); imageView.setImageBitmap(loadedImage); } });
(3)displayImage()加载图片
//显示图片的配置 DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.ic_launcher) .showImageOnFail(R.drawable.ic_launcher) .cacheInMemory(true) .cacheOnDisk(true) .bitmapConfig(Bitmap.Config.RGB_565) .build(); ImageLoader.getInstance().displayImage(imageUrl, imageView, options);
6-一些额外设置
//图片大小ImageSize imageView= new ImageSize(200, 200); //显示图片的配置 DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.default) .showImageOnFail(R.drawable.erron) .cacheInMemory(true) //缓存机制 .cacheOnDisk(true) .bitmapConfig(Bitmap.Config.RGB_565) .build(); ImageLoader.getInstance().loadImage(imageUrl, imageView,options, new SimpleImageLoadingListener()……)
运行结果
这是根据网上资料总结,如有雷同,纯属巧合,不喜勿喷,谢谢合作
源码点击下载
0 0
- Android知识点5-Universal_image_loader加载网络图片
- Universal_image_loader加载网络图片
- 网络图片加载(Universal_Image_Loader,Volley)
- 网络图片加载(Universal_Image_Loader,Volley)
- 网络图片加载(Universal_Image_Loader,Volley)
- Android异步图片加载组件之 Universal_image_loader
- Android 异步加载数据 AsyncTask+Handler+AsyncHttpClient+Universal_Image_loader+Volley
- android加载网络图片
- Android加载网络图片
- android加载网络图片
- android 网络加载图片
- android加载网络图片
- Android加载网络图片
- Android加载网络图片
- Android加载网络图片
- android加载网络图片
- Android网络加载图片
- Android 网络图片加载5种模式
- Hibernate Demo
- STL—stack 的五个操作
- android app引导页(背景图片切换加各个页面动画效果)
- js格式化日期、金额
- JAVASCRIPT如何操作数据库?
- Android知识点5-Universal_image_loader加载网络图片
- yii2 - 1: composer 安装yii2 - 申请github账户,获取token 安装yii2
- SCHED_DEALINE调度类分析(一)
- 可变参数处理,stdarg.h
- Linux Wireless基础知识
- 算导答案
- Linux图形界面与字符界面切换
- [Leetcode] Binary Tree Right Side View
- 创建一个空洞文件