先导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. ThinkPHP 错误: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

    在配置了ThinkPHP 的数据库配置信息后,在实例化Model(),调用相关方法时候 出现错误,改进如下方式后解决: 找到php.ini 的文件,打开扩展  php_pdo_mysql.dll ,然 ...

  2. 农业银行快捷支付php版说明和实例代码

    接入的是shopnc,代码改改就可以用了,虽然不是一个完善的类,也可以按照类的方法直接调用,省得再去扣开发文档 农行在接收返回信息也会验证一次,还有一点就是页面通知返回结果 一定要用服务器通知,不然会 ...

  3. NumberFormat DecimalFormat

    http://blog.csdn.net/evangel_z/article/details/7624503 http://blog.163.com/wangzhengquan85@126/blog/ ...

  4. 汇编语言标记寄存器标记位_NV UP EI NG NZ AC PE CY

    在8086CPU中,有一种标记寄存器,长度为16bit: 其中存储的信息被称为程序状态字(Program Status Word,PSW),以下将该寄存器简称为flag. 功能:1)用来存储相关指令的 ...

  5. 【javaweb学习】XML和约束模式

    xml:可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 <?xml version="1.0" encoding="g ...

  6. mysql防止数据库重复

    通常我们用来判断数据库重复的使用以下方法: $title ='www.111cn.net'; $sql = "Select * from tablename where title='$ti ...

  7. SQLite 加密 -- SQLCipher

    SQLite3 插件 github 下载地址 插件配置步骤地址 购买地址 其他加密方式介绍 SQLCipher API 地址 前言 应用使用 SQLite 来存储数据,很多时候需要对一部分的数据进行加 ...

  8. servlet中service() 和doGet() 、doPost() 学习笔记

    Sevlet接口定义如下: 与Sevlet接口相关的结构图: service() 方法是 Servlet 的核心.每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要 ...

  9. linux下常见的字符串处理

    linux下有许多对字符串文本的处理工具,diff,grep,awk,sed等等.. diff 比较两个文件的不同 [root@bogon diff]# diff file1 file2 以高亮的形式 ...

  10. LeetCode Paint House II

    原题链接在这里:https://leetcode.com/problems/paint-house-ii/ 题目: There are a row of n houses, each house ca ...