android 图片加载缓存图片,Android开发中ImageLoder进行图片加载和缓存

package com.longfei.admin.imageloder_text;

import android.app.Application;

import android.graphics.Bitmap;

import android.os.Environment;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;

import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;

import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache;

import com.nostra13.universalimageloader.core.DisplayImageOptions;

import com.nostra13.universalimageloader.core.ImageLoader;

import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import com.nostra13.universalimageloader.core.assist.ImageScaleType;

import com.nostra13.universalimageloader.core.assist.QueueProcessingType;

import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;

import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;

import com.nostra13.universalimageloader.core.download.BaseImageDownloader;

import java.io.File;

/**

* Created by admin on 2016/4/9.

*/

public class ImageLoading extends Application {

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(

this)

.memoryCacheExtraOptions(480, 800)

// max width, max height,即保存的每个缓存文件的最大长宽

.discCacheExtraOptions(480, 800, null)

// Can slow ImageLoader, use it carefully (Better don't use

// it)/设置缓存的详细信息,最好不要设置这个

.threadPoolSize(3)

// 线程池内加载的数量

.threadPriority(Thread.NORM_PRIORITY - 2)

.denyCacheImageMultipleSizesInMemory()

.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))

// You can pass your own memory cache

// implementation/你可以通过自己的内存缓存实现

.memoryCacheSize(2 * 1024 * 1024)

.discCacheSize(50 * 1024 * 1024)

.discCacheFileNameGenerator(new Md5FileNameGenerator())

// 将保存的时候的URI名称用MD5 加密

.tasksProcessingOrder(QueueProcessingType.LIFO)

.discCacheFileCount(100)

// 缓存的文件数量

.discCache(

new UnlimitedDiscCache(new File(Environment

.getExternalStorageDirectory()

+ "/myApp/imgCache")))

// 自定义缓存路径

.defaultDisplayImageOptions(getDisplayOptions())

.imageDownloader(

new BaseImageDownloader(this, 5 * 1000, 30 * 1000))

.writeDebugLogs() // Remove for release app

.build();// 开始构建

ImageLoader.getInstance().init(config);

}

private DisplayImageOptions getDisplayOptions() {

DisplayImageOptions options;

options = new DisplayImageOptions.Builder()

.showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片

.showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片

.showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片

.cacheInMemory(true)// 设置下载的图片是否缓存在内存中

.cacheOnDisc(true)// 设置下载的图片是否缓存在SD卡中

.considerExifParams(true) // 是否考虑JPEG图像EXIF参数(旋转,翻转)

.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)// 设置图片以如何的编码方式显示

.bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型//

// .delayBeforeLoading(int delayInMillis)//int

// delayInMillis为你设置的下载前的延迟时间

// 设置图片加入缓存前,对bitmap进行设置

// .preProcessor(BitmapProcessor preProcessor)

.resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位

.displayer(new RoundedBitmapDisplayer(20))// 是否设置为圆角,弧度为多少

.displayer(new FadeInBitmapDisplayer(100))// 是否图片加载好后渐入的动画时间

.build();// 构建完成

return options;

}

}

package com.longfei.admin.imageloder_text;

import android.app.Activity;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.ImageView;

import com.nostra13.universalimageloader.core.ImageLoader;

import com.nostra13.universalimageloader.core.assist.FailReason;

import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;

/**

* 1、 Universal-ImageLoader的配置

*

* 2、用Universal-ImageLoader加载网络图片和本地图片

*

* @author Administrator

*/

public class MainActivity extends Activity {

private ImageLoader loader;

private ImageView iv_img;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

loader=ImageLoader.getInstance();//实例化ImageLoder

iv_img=(ImageView)findViewById(R.id.iv_img);

String url="file:///"+"加载本地图片";

//加载网络图片,第一个参数为路径

// loader.displayImage("http://static.oschina.net/uploads/user/494/988131_100.jpg?t=1419303093000",iv_img);

loader.displayImage("http://static.oschina.net/uploads/user/494/988131_100.jpg?t=1419303093000", iv_img, new ImageLoadingListener() {

@Override

public void onLoadingStarted(String s, View view) {

Log.i("info","加载开始");

}

@Override

public void onLoadingFailed(String s, View view, FailReason failReason) {

Log.i("info","加载失败");

}

@Override

public void onLoadingComplete(String s, View view, Bitmap bitmap) {

Log.i("info","加载完毕");

}

@Override

public void onLoadingCancelled(String s, View view) {

Log.i("info","加载取消");

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值