ImageLoader

先导universal-image-loader-1.9.3包

在application配置 android:name="com.bawei.day06_xiangmu.MyApplication"

intent权限

 1 package com.ch.day13_imageloaderdemo;
 2
 3 import java.io.File;
 4
 5 import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
 6 import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
 7 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
 8 import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
 9 import com.nostra13.universalimageloader.core.DisplayImageOptions;
10 import com.nostra13.universalimageloader.core.ImageLoader;
11 import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
12 import com.nostra13.universalimageloader.core.assist.ImageScaleType;
13 import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
14 import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
15 import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
16 import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
17 import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
18
19 import android.app.Application;
20 import android.graphics.Bitmap;
21 import android.os.Environment;
22 import android.util.Log;
23
24 public class MyApplication extends Application{
25
26     @Override
27     public void onCreate() {
28         // TODO Auto-generated method stub
29         super.onCreate();
30         Log.i("TAG", "自定义的application类调用了.....");
31         //创建ImageLoader的默认配置
32 //        ImageLoaderConfiguration confing = ImageLoaderConfiguration.createDefault(this);
33         //得到sdcard路径
34         String sdpath = Environment.getExternalStorageDirectory().getPath();
35         //自定义ImageLoaderConfiguration
36         ImageLoaderConfiguration confing = new ImageLoaderConfiguration.Builder(this)
37         .memoryCacheExtraOptions(480, 800)// default = device screen dimensions 内存缓存文件的最大长宽
38         .diskCacheExtraOptions(480, 800, null)// 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个
39 //        .taskExecutor(null)
40 //        .taskExecutorForCachedImages(null)
41         .threadPoolSize(3)// default  线程池内加载的数量
42         .threadPriority(Thread.NORM_PRIORITY-2) // default 设置当前线程的优先级
43         .tasksProcessingOrder(QueueProcessingType.FIFO)//任务的处理顺序
44         .denyCacheImageMultipleSizesInMemory()
45         .memoryCache(new LruMemoryCache(2 * 1024 * 1024))////设置自己的内存缓存大小 2m
46         .memoryCacheSize(2 * 1024 * 1024)
47 //        .memoryCacheSizePercentage(13)
48         .diskCache(new UnlimitedDiscCache(new File(sdpath+"/app1407a/imgcache")))//设置缓存的图片在sdcard中的存放位置
49         .diskCacheSize(50 * 1024 * 1024)
50         .diskCacheFileCount(100)
51         .diskCacheFileNameGenerator(new Md5FileNameGenerator())//md5加密的方式,或new HashCodeFileNameGenerator()
52         .imageDownloader(new BaseImageDownloader(this))
53 //        .imageDecoder(new BaseImageDecoder(true))
54         .defaultDisplayImageOptions(null)//不适用默认的图片加载配置,使用自定义的
55         .writeDebugLogs()
56         .build();
57         //初始化
58         ImageLoader.getInstance().init(confing);
59     }
60
61     public static DisplayImageOptions getOptions(){
62         //自定义加载图片的配置信息
63         DisplayImageOptions option = new DisplayImageOptions.Builder()
64         .showImageOnLoading(R.drawable.ic_launcher)// 设置图片下载期间显示的图片
65         .showImageForEmptyUri(R.drawable.emptyurl) // 设置图片Uri为空或是错误的时候显示的图片
66         .showImageOnFail(R.drawable.emptyurl)// 设置图片加载或解码过程中发生错误显示的图片
67         .resetViewBeforeLoading(false)// default 设置图片在加载前是否重置、复位
68 //        .delayBeforeLoading(1000)// 下载前的延迟时间
69         .cacheInMemory(true)// default  设置下载的图片是否缓存在内存中
70         .cacheOnDisk(true)// default  设置下载的图片是否缓存在SD卡中
71         .considerExifParams(false)
72         .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)//设置图片的显示比例
73         .bitmapConfig(Bitmap.Config.RGB_565)// default 设置图片的解码类型
74 //        .displayer(new RoundedBitmapDisplayer(75))//设置图片的圆角半径
75         .displayer(new FadeInBitmapDisplayer(8000))//设置图片显示的透明度过程时间
76         .build();
77
78         return option;
79     }
80
81 }
 1 package com.ch.day13_imageloaderdemo;
 2
 3 import com.nostra13.universalimageloader.core.ImageLoader;
 4 import com.nostra13.universalimageloader.core.assist.FailReason;
 5 import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
 6 import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener;
 7
 8 import android.os.Bundle;
 9 import android.app.Activity;
10 import android.app.ProgressDialog;
11 import android.graphics.Bitmap;
12 import android.util.Log;
13 import android.view.Menu;
14 import android.view.View;
15 import android.widget.ImageView;
16
17 public class MainActivity extends Activity {
18     private ImageView img;
19     String url = "http://photocdn.sohu.com/kis/fengmian/1193/1193693/1193693_ver_big.jpg";
20     String url1 = "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg";
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25
26         init();
27     }
28
29     public void init(){
30         img = (ImageView) findViewById(R.id.img);
31         //通过ImageLoader加载网络图片,配置给img
32 //        ImageLoader.getInstance().displayImage(url, img);
33 //        ImageLoader.getInstance().displayImage(url, img, MyApplication.getOptions());
34 //        ImageLoader.getInstance().displayImage(url, img, MyApplication.getOptions(), new ImageLoadingListener() {
35 //            @Override
36 //            public void onLoadingStarted(String arg0, View arg1) {
37 //            }
38 //            @Override
39 //            public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
40 //            }
41 //            @Override
42 //            public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
43 //            }
44 //            @Override
45 //            public void onLoadingCancelled(String arg0, View arg1) {
46 //            }
47 //        });
48         final ProgressDialog pro = new ProgressDialog(this);
49         pro.setMessage("努力加载中。。。");
50         pro.setIcon(R.drawable.ic_launcher);
51         pro.show();
52         ImageLoader.getInstance().displayImage(url1, img, MyApplication.getOptions(), null, new ImageLoadingProgressListener() {
53
54             @Override
55             public void onProgressUpdate(String arg0, View arg1, int arg2, int arg3) {
56                 // TODO Auto-generated method stub
57                 Log.i("TAG", arg0+",,"+arg2+","+arg3);
58                 float rs = ((float)arg2)/arg3;
59                 pro.setMessage("当前加载到:"+rs*100+"%");
60                 if(arg2 == arg3){
61                     pro.cancel();
62                 }
63             }
64         });
65     }
66
67     @Override
68     public boolean onCreateOptionsMenu(Menu menu) {
69         // Inflate the menu; this adds items to the action bar if it is present.
70         getMenuInflater().inflate(R.menu.activity_main, menu);
71         return true;
72     }
73
74 }
时间: 2024-10-27 10:49:16

ImageLoader的相关文章

Android开源框架ImageLoader:加载图片的三级缓存机制

前言:可从  https://github.com/nostra13/Android-Universal-Image-Loader 下载三级缓存机制的开源框架.下文简单介绍该框架中主要的常用方法,掌握这些方法,基本就可应对多数图片下载的需求. 注意:以下代码为示意代码片断,仔细读一下应能知道怎么用.蓝色表示为开源框架中的类. 1.初始化ImageLoader类对象: ImageLoader imageLoader = ImageLoader.getInstance(); imageLoader.

Android 网络图片加载缓存处理库ImageLoader和Picasso

在Android图片处理中需要考虑的问题很多,例如OOM.图片缓存和网络图片加载.多线程问题及图片压缩处理等等复杂的问题.网上也有一些很优秀的开源库帮我们处理这些问题,下面介绍两款开源图片处理库框架:Universal-ImageLoader和Picasso. Universal-ImageLoader: 优点: 支持本地图片和网络图片的多线程异步加载和缓存处理: 个性化的配置自己项目的ImageLoader: 图片加载过程的监听回调: 自动对加载的图片针对当前剩余内存进行裁剪优化,防止OOM:

Android图片缓存的框架ImageLoader的使用

DisplayImageOptions options;        // DisplayImageOptions是用于设置图片显示的类 // 使用DisplayImageOptions.Builder()创建DisplayImageOptions  options = new DisplayImageOptions.Builder()  .showStubImage(R.drawable.ic_stub)          // 设置图片下载期间显示的图片  .showImageForEmp

Android开源项目 Universal imageloader 源码研究之项目框架

Universal imageloader 的代码并不复杂 重点是缓存,线程池任务 下面都用UML图进行了绘制 基本使用流程就是 初始化配置,设置Options参数,最后Dispaly提交下载 public static void initImageLoader(Context context) { ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(context); config.thr

ImageLoader配置(注释)

/** * 配置ImageLoader */ private void configImageLoader() { File discCacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "/iWorker/Cache/images"); int memClass = ((android.app.ActivityManager) getSystemService(Context.ACTIVITY_SE

Android -- ImageLoader本地缓存

传送门 <Android -- ImageLoader简析>  http://www.cnblogs.com/yydcdut/p/4008097.html 本地缓存 在缓存文件时对文件名称的修改提供了两种方式,每一种方式对应了一个Java类 1)  HashCodeFileNameGenerator,该类负责获取文件名称的hashcode然后转换成字符串. 2)  Md5FileNameGenerator,该类把源文件的名称同过md5加密后保存. 两个类都继承了FileNameGenerato

ImageLoader在Listview中的使用

图片加载框架之ImageLoader 1_特点 1)多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 2)支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 3)支持图片的内存缓存,文件系统缓存或者SD卡缓存 4)支持图片下载过程的监听 5)根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存 6)较好的控制图片的加载过程,例如暂停图片加载,重

【框架】异步加载大量图片--ImageLoader

public abstract class BaseImageLoaderProvider { public abstract void loadImage(Context ctx, ImageLoader img); } public class GlideImageLoaderCorpProvider extends BaseImageLoaderProvider { @Override public void loadImage(Context ctx, ImageLoader img)

胖虎谈ImageLoader框架(四)

前言 从学校出来的这半年时间,发现很少有时间可以静下来学习和写博文了,为了保持着学习热情,我希望自己抽出一部分时间来写一些Android框架源码阅读后的理解系列博文. 期许:希望可以和大家一起学习好此框架,也希望大家看博文前最好是先了解下框架的基本使用场景和使用方法,有什么问题可以留言给我,交流学习. 当然,再好的博文,也不如自己看一遍源码! 这次为大家带来的是<胖虎谈ImageLoader框架>系列,分析优秀的框架源码能让我们更迅速地提升,大家共勉!! 源码包下载地址:http://down

【光速使用开源框架系列】图片加载框架ImageLoader

[关于本系列] 最近看了不少开源框架,网上的资料也非常多,但是我认为了解一个框架最好的方法就是实际使用.本系列博文就是带领大家快速的上手一些常用的开源框架,体会到其作用. 由于作者水平有限,本系列只会描述如何快速的使用框架的基本功能,更多的详细设置大家可以在这些项目的页面上找到. [介绍]: ImageLoader作为一款开源的异步图片加载框架,在Android开发中经常被使用到,该控件可以加载和显示图片.并且对其进行缓存,提供了很多方便的选项帮助开发者们快速达到开发需求. [GitHub页面]