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

导读:本篇文章讲解 网络图片缓存显示框架之universal-image-loader-1.9.1-with-sources,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、简单介绍

 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;
}
}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119236.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!