ImageLoader加载图片
先导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加载图片的更多相关文章
- 使用Volley框架中的ImageLoader来异步的加载图片
Volley框架在请求网络图片方面也做了很多工作,提供了好几种方法.本文介绍使用ImageLoader来进行网络图片的加载.ImageLoader的内部使用ImageRequest来实现,它的构造器可 ...
- Android框架Volley之:利用Imageloader和NetWorkImageView加载图片
首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...
- 利用Volley封装好的图片缓存处理加载图片
Volley 工具箱中提供了一种通过 DiskBasedCache 类实现的标准缓存.这个类能够缓存文件到磁盘的指定目录.但是为了使用 ImageLoader,我们应该提供一个自定义的内存 LRC b ...
- 【第二篇】Volley的使用之加载图片
Volley加载图片有两种方式: 1,ImageRequest 来对网络图片进行请求,放入请求队列,获取后现在在控件上面. 2,NetworkImageView 最为自定义控件来自动加载网络图片. 3 ...
- swift 异步加载图片(第三方框架ImageLoader)
import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...
- android ImageLoader加载本地图片的工具类
import android.widget.ImageView; import com.nostra13.universalimageloader.core.ImageLoader; /** * 异步 ...
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3574131.html 这个可以实现ImageView异步加载 ...
- ionic懒加载图片
https://github.com/paveisistemas/ionic-image-lazy-load <script src="lib/ionic/js/ionic-image ...
- listview可见再加载图片
对于,listView如果同时含有大量文字和图片,那么对于用户,如果不需要滑动到后面,那么此时去加载网络图片,显然是耗费流量的. 此时可以做一些优化: listView.getRefreshableV ...
随机推荐
- java并发控制:lock
一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性.那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被syn ...
- php摇杆Tiger摇奖
先说下整体思路,代码已附下方. 1.递归产生一个非中奖数(即非连续数字:'111','222','333','444','555','666','777','888') 2.点击摇奖,把奖项通过设置的 ...
- 再谈java两种变量(基本类型和引用类型)(综合各路大神)
基本类型: 基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值. int a: a=250: //声明变量a的同时,系统给a分配了数据空间. 引用类型: 是一个对象类型,值是什么呢? ...
- vi 技巧和诀窍~转IBM
复合搜索 1 #!/bin/ksh 2 # 3 echo "Starting" 4 file=${1} 5 6 echo ${file} 7 8 if [[ ${file} = 1 ...
- JQ第二天
一.属性.表单过滤选择器 $("div[id]")选取有id属性的<div>//$("div [id]")有空格表示div层当中有id属性的元素 $ ...
- hibernate学习(5)——多对多关系映射
1.创建实体和映射 package com.alice.hibernate03.vo; import java.util.HashSet; import java.util.Set; public c ...
- 适应laytpl 渲染模板数据
前言 当我们异步读取数据过来的时候,还要通过手动赋值,显示在页面上吗,那样你就太OUT了,哥告诉你个新方式. 那就是 laytpl 插件 用法一:渲染单条数据 <table id="B ...
- id to load is required for loading
id一般作为主键,不为空.springmvc hibernate 框架中根据参数ids执行批量删除的方法时报错,ids是id主键的数组集合.去搜了下,原因别的博客说了,是id为空引起的.实际上id不为 ...
- SQL Server 常用日期查询语句
--本月月初select dateadd(mm,datediff(mm,0,getdate()),0) --本月月末select DATEADD(DD,-1,DATEADD(MONTH,1+DAT ...
- Android开发环境配置
由于公司项目需要,最近转做Android开发,这里我来介绍一下Android开发环境的配置过程. 首先,需要下载所需要的软件工具,如下所示: 1.Java:开发基础环境,JDK和JRE这两个都要下载的 ...