ImageLoader初始化以及调用
1、首先在当前程序的Application中调用ImageLoader的初始化init()方法
[java] view plain copy
- private void initImageLoader() {
- ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).imageDownloader(
- new BaseImageDownloader(this, 60 * 1000, 60 * 1000)) // connectTimeout超时时间
- .build();
- ImageLoader.getInstance().init(config);
- }
2、下载图片的参数选项配置
[java] view plain copy
- /**
- * 调用该方法下载图片
- * 配置imageLoader图片选项
- * @param iv 显示图片控件
- * @param url 网络或本地图片地址
- * @param defaultPic 默认图片
- * @param isRound true为圆形,false不处理
- * @param cacheOnDisk true缓存到SD卡,false不缓存到SD卡
- */
- public static void displayImages(ImageView iv,String url,int defaultPic,boolean isRound,boolean cacheOnDisk){
- //配置一些图片选项
- DisplayImageOptions options = new DisplayImageOptions.Builder()
- .showImageOnLoading(defaultPic)// 设置图片在下载期间显示的图片
- .showImageForEmptyUri(defaultPic)// 设置图片Uri为空或是错误的时候显示的图片
- .showImageOnFail(defaultPic)// 设置图片加载/解码过程中错误时候显示的图片
- .cacheInMemory(false)// 设置下载的图片是否缓存在内存中
- .cacheOnDisk(cacheOnDisk)// 设置下载的图片是否缓存在SD卡中
- .considerExifParams(true)//是否考虑JPEG图像EXIF参数(旋转,翻转)
- .displayer(isRound ? new CircleBitmapDisplayer() : new SimpleBitmapDisplayer())//FadeInBitmapDisplayer(200)listview加载闪烁问题
- .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)//图片将降低2倍,直到下一减少步骤,使图像更小的目标大小
- .bitmapConfig(Bitmap.Config.RGB_565)//图片色彩565
- .build();
- imageLoader.displayImage(url, iv, options);
3、扩展,图片显示方式,圆角;CircleBitmapDisplayer()
[java] view plain copy
- private static class CircleBitmapDisplayer implements BitmapDisplayer {
- final int margin ;
- public CircleBitmapDisplayer() {
- this(0);
- }
- public CircleBitmapDisplayer(int margin) {
- this.margin = margin;
- }
- @Override
- public void display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom) {
- if (!(imageAware instanceof ImageViewAware)) {
- throw new IllegalArgumentException("ImageAware should wrap ImageView. ImageViewAware is expected.");
- }
- imageAware.setImageBitmap(ToRoundBitmap.toRoundBitmap(bitmap));
- }
- }
4、返回圆形bitmap;toRoundBitmap()
[java] view plain copy
- public static Bitmap toRoundBitmap(Bitmap bitmap) {
- int width = bitmap.getWidth();
- int height = bitmap.getHeight();
- float roundPx;
- float left,top,right,bottom,dst_left,dst_top,dst_right,dst_bottom;
- if (width <= height) {
- roundPx = width / 2;
- top = 0;
- left = 0;
- bottom = width;
- right = width;
- height = width;
- dst_left = 0;
- dst_top = 0;
- dst_right = width;
- dst_bottom = width;
- } else {
- roundPx = height / 2;
- float clip = (width - height) / 2;
- left = clip;
- right = width - clip;
- top = 0;
- bottom = height;
- width = height;
- dst_left = 0;
- dst_top = 0;
- dst_right = height;
- dst_bottom = height;
- }
- Bitmap output = Bitmap.createBitmap(width,height, Config.ARGB_8888);
- Canvas canvas = new Canvas(output);
- final int color = 0xff424242;
- final Paint paint = new Paint();
- final Rect src = new Rect((int)left, (int)top, (int)right, (int)bottom);
- final Rect dst = new Rect((int)dst_left, (int)dst_top, (int)dst_right, (int)dst_bottom);
- final RectF rectF = new RectF(dst);
- paint.setAntiAlias(true);
- canvas.drawARGB(0, 0, 0, 0);
- paint.setColor(Color.WHITE);
- paint.setStrokeWidth(4);
- canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
- paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
- canvas.drawBitmap(bitmap, src, dst, paint);
- return output ;
- }
5、根据图片uri返回bitmap;此缓存位置为内存
[java] view plain copy
- public static Bitmap getBitmapUtils(String imgUri){
- return imageLoader.getMemoryCache().get(imgUri);
- }
6、根据图片uri返回File;此缓存位置为sd卡
[java] view plain copy
- public static File getFileUtils(String imgUri){
- return imageLoader.getDiskCache().get(imgUri);
- }
7、获取imageloader缓存所有图片总计大小
[java] view plain copy
- public static long getCacheFileSize(){
- File disCacheFile = imageLoader.getDiskCache().getDirectory();
- long size = 0;
- for(int i=0; i<disCacheFile.listFiles().length; i++){
- size += disCacheFile.listFiles()[i].length();
- }
- return size;
- }
8、清除图片缓存
[java] view plain copy
- public static void clearImageCache(){
- imageLoader.clearDiskCache();//清除磁盘缓存
- imageLoader.clearMemoryCache();//清除内存缓存
- }
ImageLoader初始化以及调用的更多相关文章
- win7运行sqlplus报错“SP2-1503: 无法初始化 Oracle 调用界面”
WIN7 64bit安装Oracle 10.2.0.1后,运行cmd-sqlplus / as sysdba会提示: C:\Users\Liu>sqlplus / as sysdba SP2-1 ...
- SP2-1503: 无法初始化 Oracle 调用界面
问题描述: win7下,cmd运行 输入sqlplus报一下错误 SP2-1503: 无法初始化 Oracle 调用界面 SP2-0152: ORACLE 不能正常工作 解决办法 1.cmd右键--以 ...
- Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序
当创建一个对象时,各种成员变量及构造方法的初始化或调用顺序是怎样的呢? (1).如果类尚未加载,则先初始化静态成员变量和静态代码块,再初始化成员变量,最后调用相应的构造方法: (2).如果类已经加载过 ...
- 排错-SP2-1503:无法初始化Oracle调用界面解决
SP2-1503:无法初始化Oracle调用界面解决 by:授客 QQ:1033553122 SP2-1503:无法初始化Oracle调用界面解决 问题描述: win7下,cmd运行输入sqlplus ...
- Win7下SQLPlus登录时报错"SP2-1503:无法初始化Oracle调用界面"
Oracle安装完毕,使用SQLPlus登录的时候报错"SP2-1503:无法初始化Oracle调用界面",然后一闪界面关闭,报错界面如下: 这个是因为在Win7需要管理员权限,右 ...
- 基础学习day06---面向对象二---static,类的初始化和调用顺序、单例模式
一.static关键字 1.1.static关键字 静态:static用法:是一个修饰符,用于修饰成员(成员变量,成员函数)static 修饰的内容,所有对象共享当成员被静态修饰后,就多了一个调用方式 ...
- class类初始化之后调用赋值问题记录
class PWSTRDELL: def __init__(self, pw_str):#该方法在类实例化时会自动调用 self.pw = pw_str self.strength_level = 0 ...
- Android 12(S) 图像显示系统 - HWC HAL 初始化与调用流程
必读: Android 12(S) 图像显示系统 - 开篇 接口定义 源码位置:/hardware/interfaces/graphics/composer/ 在源码目录下可以看到4个版本的HIDL ...
- Web开发中Listener、Filter、Servlet的初始化及调用
我们在使用Spring+SpringMVC开发项目中,web.xml中一般的配置如下: <?xml version="1.0" encoding="UTF-8&qu ...
随机推荐
- 委托、Lambda表达式、事件系列05,Action委托与闭包
来看使用Action委托的一个实例: static void Main(string[] args) { int i = 0; Action a = () => i++; a(); a(); C ...
- 详细注释!二维码条码扫描源码,使用Zxing core2.3
from:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=325529&page=1 现如今很多项目中都会应用到条码扫描解 ...
- python测试开发django-13.操作数据库(增删改查)
前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...
- 关于面试总结10-selenium中隐藏元素如何定位?(hidden、display: none)
前言 面试题:selenium中隐藏元素如何定位?这个是很多面试官喜欢问的一个题,如果单纯的定位的话,隐藏元素和普通不隐藏元素定位没啥区别,用正常定位方法就行了 但是吧~~~很多面试官自己都搞不清楚啥 ...
- (转载):ASCII,Unicode和UTF-8 编码
UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所 ...
- Greenplum入门——基础知识、安装、常用函数
Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709 版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...
- 配置SSD-caffe测试时出现“Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal”解决方案
这是由于GPU数量不匹配造成的,如果训练自己的数据,那么我们只需要将solver.prototxt文件中的device_id项改为自己的GPU块数,一块就是0,两块就是1,以此类推. 但是SSD配置时 ...
- Intel的AVX2指令集解读
原文链接:http://blog.csdn.net/vbskj/article/details/38408213 在Intel Sandy Bridge微架构中,Intel引入了256位SIMD扩展A ...
- [转]如何将PHP作为Shell脚本语言使用
From : http://www.linuxfly.org/post/559/ 我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短……).但是只有很少数的人意识到PHP也可以很好 ...
- 算法:快速排序实现 & 定制比较函数
1. 快速排序基本算法 #include<stdio.h> ; int quick_sort(int *a, int start, int end){ if (start >= en ...