网络图片缓存显示框架之universal-image-loader-1.9.1-with-sources

一、简单介绍

 Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。所以,如果你的程序里需要这个功能的话,那么不妨试试它。因为已经封装好了一些类和方法。我们 可以直接拿来用了。而不用重复去写了。其实,写一个这方面的程序还是比较麻烦的,要考虑多线程缓存,内存溢出等很多方面。你可以在百度上输入universal-image-loader-1.9.1-with-sources来下载jar文件

在xml文件中添加网络权限

<uses-permission android:name="android.permission.INTERNET" />

二、具体使用

package com.oe.androidwimageloaderdemo;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

public class MainActivity extends Activity implements OnClickListener {
/*
* ImageLoaderConfiguration是针对图片缓存的全局配置,主要有线程类、缓存大小、磁盘大小、图片下载与解析、日志方面的配置。
* ImageLoader是具体下载图片,缓存图片,显示图片的具体执行类,它有两个具体的方法displayImage(...)、loadImage(...
* ),但是其实最终他们的实现都是displayImage(...)。
* DisplayImageOptions用于指导每一个Imageloader根据网络图片的状态(空白、下载错误、正在下载)显示对应的图片,
* 是否将缓存加载到磁盘上,下载完后对图片进行怎么样的处理。
* *
*/
private Button btn_send, btn_sendN;
private ImageView img_view;
private int index = 0;
String imgs[] = new String[] {
"http://125.76.233.80:9700/upload/201606/20/20160620154640191000.jpg",
"http://125.76.233.80:9700/upload/201606/20/201606201527406310.jpg",
"http://125.76.233.80:9700/upload/201606/18/201606182041316270.jpg",
"http://125.76.233.80:9700/upload/201606/18/201606181837049080.jpg",
"http://125.76.233.80:9700/upload/201606/18/201606181828379290.jpg",
"http://125.76.233.80:9700/upload/201606/18/201606181818464990.jpg" };


private DisplayImageOptions options; // 显示图片的设置
private ImageLoader imageLoader;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_send = (Button) findViewById(R.id.btn_send);
btn_sendN = (Button) findViewById(R.id.btn_sendN);
img_view = (ImageView) findViewById(R.id.img_view);
// 针对图片缓存的全局配置,一般使用默认的就可以了
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(getApplicationContext());
imageLoader = ImageLoader.getInstance();
imageLoader.init(configuration);
//对网络图片设置缓存显示过程中图片显示 如url开始加载中显示的图片showStubImage

               //url加载失败显示的默认图片showImageOnFail

              //url加载成功但是图片是空的默认图片showImageForEmptyUri
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error).cacheInMemory(true)
.cacheOnDisc(true).bitmapConfig(Bitmap.Config.RGB_565) // 设置图片的解码类型
.build();

// 显示图片
// 将图片显示任务增加到执行池,图片将被显示到ImageView当轮到此ImageView
//options可以设置也可以不设置
imageLoader.displayImage(imgs[index], img_view, options);

btn_send.setOnClickListener(this);
btn_sendN.setOnClickListener(this);


}


private String url;


@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_send:
index--;
if (index == -1) {
index = imgs.length - 1;
}
url = imgs[index];
imageLoader.displayImage(url, img_view);
break;


case R.id.btn_sendN:
index++;
if (index == imgs.length - 1) {
index = 0;
}
url = imgs[index];
imageLoader.displayImage(url, img_view);
break;
}
}


}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyxhzdm

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值