ImageLoader
2016-05-25 20:12
330 查看
package com.example.image_loader;
import java.io.File;
import com.nostra13.universalimageloader.cache.disc.DiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
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.QueueProcessingType;
import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.core.download.ImageDownloader;
import com.nostra13.universalimageloader.utils.StorageUtils;
import android.app.Application;
public class MyApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
//注:1.记得在AndroidManifest.xml中添加android:name="com.example.image_loader.MyApplication"
File cacheDir = StorageUtils.getOwnCacheDirectory(this, "imageloader/Cache");
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
.threadPoolSize(3) //线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheFileNameGenerator(new Md5FileNameGenerator()) //将保存的时候的URI名称用MD5 加密
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
.tasksProcessingOrder(QueueProcessingType.LIFO)
// 由原先的discCache -> diskCache
//.diskCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
.imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() // Remove for release app
.build();
//全局初始化此配置
ImageLoader.getInstance().init(configuration);
}
}
--------------------------------------------------------------------------------------
package com.example.image_loader;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
String[] path = new String[] {
"http://pic13.nipic.com/20110415/1369025_121513630398_2.jpg",
"http://dealer0.autoimg.cn/dl/10982/newsimg/130364690780019046.jpg",
"http://img3.imgtn.bdimg.com/it/u=1681882397,3535453166&fm=11&gp=0.jpg" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.listView1);
lv.setAdapter(new myadapter());
}
class myadapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return path.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Viewholder vo;
if (convertView == null) {
vo = new Viewholder();
convertView = LayoutInflater.from(MainActivity.this).inflate(
R.layout.lv, null);
vo.ima = (ImageView) convertView.findViewById(R.id.imageView1);
convertView.setTag(vo);
} else {
vo = (Viewholder) convertView.getTag();
}
// 首先要得到ImageLoader的实例(使用的单例模式)
ImageLoader imageLoader1 = ImageLoader.getInstance();
// 使用DisplayImageOptions.Builder()创建
DisplayImageOptions options1 = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.q) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.w) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.e) // 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(false) // 设置下载的图片是否缓存在内存中
.cacheOnDisk(false) // 设置下载的图片是否缓存在SD卡中
// .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
.build(); // 构建完成
imageLoader1.displayImage(path[position], vo.ima, options1);
return convertView;
}
}
class Viewholder {
ImageView ima;
}
}
-------------------------------------------------------------
import java.io.File;
import com.nostra13.universalimageloader.cache.disc.DiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
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.QueueProcessingType;
import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.core.download.ImageDownloader;
import com.nostra13.universalimageloader.utils.StorageUtils;
import android.app.Application;
public class MyApplication extends Application {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
//注:1.记得在AndroidManifest.xml中添加android:name="com.example.image_loader.MyApplication"
File cacheDir = StorageUtils.getOwnCacheDirectory(this, "imageloader/Cache");
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
.threadPoolSize(3) //线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheFileNameGenerator(new Md5FileNameGenerator()) //将保存的时候的URI名称用MD5 加密
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024) // 内存缓存的最大值
.diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
.tasksProcessingOrder(QueueProcessingType.LIFO)
// 由原先的discCache -> diskCache
//.diskCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
.imageDownloader(new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() // Remove for release app
.build();
//全局初始化此配置
ImageLoader.getInstance().init(configuration);
}
}
--------------------------------------------------------------------------------------
package com.example.image_loader;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
String[] path = new String[] {
"http://pic13.nipic.com/20110415/1369025_121513630398_2.jpg",
"http://dealer0.autoimg.cn/dl/10982/newsimg/130364690780019046.jpg",
"http://img3.imgtn.bdimg.com/it/u=1681882397,3535453166&fm=11&gp=0.jpg" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView) findViewById(R.id.listView1);
lv.setAdapter(new myadapter());
}
class myadapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return path.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Viewholder vo;
if (convertView == null) {
vo = new Viewholder();
convertView = LayoutInflater.from(MainActivity.this).inflate(
R.layout.lv, null);
vo.ima = (ImageView) convertView.findViewById(R.id.imageView1);
convertView.setTag(vo);
} else {
vo = (Viewholder) convertView.getTag();
}
// 首先要得到ImageLoader的实例(使用的单例模式)
ImageLoader imageLoader1 = ImageLoader.getInstance();
// 使用DisplayImageOptions.Builder()创建
DisplayImageOptions options1 = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.q) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.w) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.e) // 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(false) // 设置下载的图片是否缓存在内存中
.cacheOnDisk(false) // 设置下载的图片是否缓存在SD卡中
// .displayer(new RoundedBitmapDisplayer(20)) // 设置成圆角图片
.build(); // 构建完成
imageLoader1.displayImage(path[position], vo.ima, options1);
return convertView;
}
}
class Viewholder {
ImageView ima;
}
}
-------------------------------------------------------------
相关文章推荐
- linux创建进程消耗内存
- Nosql Mongodb 并发控制之乐观锁
- CDN基础服务-防盗链
- 制作按钮点击的平滑的过渡效果
- 2016年5月25日下午(妙味课堂js预热课程-4笔记二)
- Codeforces Round #352 (Div. 2) C. Recycling Bottles 暴力+贪心
- Linux的打印rpm包的详细信息的shell脚本
- 【转】信号量实现生产者消费者模式
- req.body,req.query
- MTK camera 闪光灯Flashlight驱动调试流程
- apache 设置用户注意事项
- 蓝桥杯 密文搜索 O(nlogn)实现
- 安装EBS报错解决
- Spring事务配置
- 第13周-项目1-分数类中的运算符重载(3)
- JavaScript学习--Item12 undefined 与 null
- 1023 Problem W
- ajax 传json到后台servlet接收
- GitHub前100的安卓开源架包
- js 阻止冒泡排序