先导universal-image-loader-1.9.3包

在application配置 android:name=".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 }

ImageLoader加载图片的更多相关文章

  1. 使用Volley框架中的ImageLoader来异步的加载图片

    Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.ImageLoader的内部使用ImageRequest来实现,它的构造器可 ...

  2. Android框架Volley之:利用Imageloader和NetWorkImageView加载图片

    首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...

  3. 利用Volley封装好的图片缓存处理加载图片

    Volley 工具箱中提供了一种通过 DiskBasedCache 类实现的标准缓存.这个类能够缓存文件到磁盘的指定目录.但是为了使用 ImageLoader,我们应该提供一个自定义的内存 LRC b ...

  4. 【第二篇】Volley的使用之加载图片

    Volley加载图片有两种方式: 1,ImageRequest 来对网络图片进行请求,放入请求队列,获取后现在在控件上面. 2,NetworkImageView 最为自定义控件来自动加载网络图片. 3 ...

  5. swift 异步加载图片(第三方框架ImageLoader)

    import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...

  6. android ImageLoader加载本地图片的工具类

    import android.widget.ImageView; import com.nostra13.universalimageloader.core.ImageLoader; /** * 异步 ...

  7. [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3574131.html  这个可以实现ImageView异步加载 ...

  8. ionic懒加载图片

    https://github.com/paveisistemas/ionic-image-lazy-load <script src="lib/ionic/js/ionic-image ...

  9. listview可见再加载图片

    对于,listView如果同时含有大量文字和图片,那么对于用户,如果不需要滑动到后面,那么此时去加载网络图片,显然是耗费流量的. 此时可以做一些优化: listView.getRefreshableV ...

随机推荐

  1. javascript平时例子⑧(大屏轮播)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  2. STL之list

    list是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块,一个前驱指针和一个后驱指针.它无需分配指定的内存大小且可以任意伸缩,这是因为它存储在非连续的内存空间中,并且由指针将有 ...

  3. tachyon of zybo cluster

    把Tachyon层加入spark和hadoop之间,以加速集群 官网:http://tachyon-project.org/ github:https://github.com/amplab/tach ...

  4. MySQL、mybatis的查询条件-时间段

    1.配置文件中的写法 <if test="startTime !=null and startTime !='' "> <![CDATA[ and createT ...

  5. IOS网络第五天 AFN-02-文件上传,底部弹出窗体,拍照和相册获取图片上传

    ************** #import "HMViewController.h" #import "AFNetworking.h" @interface ...

  6. jxl读取Excel表格数据

    调用jxl包实现Excel表格数据的读取,代码如下: import java.io.File; import java.io.IOException; import java.util.ArrayLi ...

  7. IO口

    STM32的每个IO端口都有7个寄存器来控制.他们是:CRH CRL IDR ODR BSRR BRR LCKR.我们常用的IO端口寄存器位CRL CRH IDR ODR.CRL CRH控制着每个IO ...

  8. oracle分组取第一条

    SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY x ORDER BY y DESC) rn,test1.* FROM test1) WHERE ...

  9. iOS版本更新的App提交审核发布流程

    http://www.2cto.com/kf/201502/378698.html 版本更新的App和新App的发布提交流程略有不同,新的App需要在开发者账号里准备发布证书,添加App的id,关联描 ...

  10. 随手记一次用C#正则表达式获取下拉菜单html标签<select>以及相关属性值

    随手记一次用C#正则表达式获取下拉菜单html标签<select>以及相关属性值 1:有如下html: .................. <select id="aaa ...