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 ...
随机推荐
- JS动态引入js,CSS——动态创建script/link/style标签
一.动态创建link方式 我们可以使用link的方式.如下代码所示. 二.动态创建style方式 但是,这样的话,需要加载整个css文件,但是那样有可能浪费一个http请求并占用一个服务器请求数,并等 ...
- Unity学习疑问记录之触摸点坐标
Vector3 pos=Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position); 类似的鼠标点击Camera.main.ScreenToW ...
- ExAllocatePool、ExAllocatePoolWithTag
PVOID p = ExAllocatePool(Pool_Type, Size); PVOID p = ExAllocatePoolWithTag(Pool_Type, Size, Tag); 调用 ...
- cocos2d-x test学习[1]
controller.cpp std::function<TestScene*()> callback;//一个是返回值,一个是参数.返回值是TestScene*,参数是()里的东西 Co ...
- python爬虫beta版之抓取知乎单页面回答(low 逼版)
闲着无聊,逛知乎.发现想找点有意思的回答也不容易,就想说要不写个爬虫帮我把点赞数最多的给我搞下来方便阅读,也许还能做做数据分析(意淫中--) 鉴于之前用python写爬虫,帮运营人员抓取过京东的商品品 ...
- javascript入门:prototype和面向对象的实现
由于工作需要,需要大量使用javascript,于是对其进行了一下学习. 学习任何一个语言,最重要的是掌握其和其他语言不同的关键特性.对javascript来说,我总结就是prototype.就像me ...
- 关于sed用法
sed处理流程 sed的处理流程,简化后是这样的: 1.读入新的一行内容到缓存空间: 2.从指定的操作指令中取出第一条指令,判断是否匹配pattern: 3.如果不匹配,则忽略后续的编辑命令,回到第2 ...
- 极光推送Jpush(v3)服务端PHP版本的api脚本类
原文地址:http://www.dodobook.net/php/780 关于极光推送的上一篇文章已经说明了,此处就不多说了.使用v3版本的原因是v2使用到2014年年底就停止了.点击查看上一篇的地址 ...
- Chrome 控制台使用大全
Chrome的开发者工具已经强大到没朋友的地步了,特别是功能丰富界面友好的console 一.console.log 将输出到控制台的信息进行分类会更好: console.log(); 普通信息 ...
- ios上position:fixed失效问题
手机端上的猫腻真是多啊~~~ 此起彼伏! 最近又遇到了 固定定位的底部导航在ios上被弹出去 此时内心1w+个草泥马奔过~~~~~~~~ 直接上解决方案: <div class="ma ...