您的位置:首页 > 其它

加载图片的几种方式

2015-10-09 08:25 316 查看
1、volley

VolleyUtils.getLoader(context).get(datas.get(position), ImageLoader.getImageListener(
holder.iv, R.drawable.ic_launcher, android.R.drawable.ic_menu_delete));

2、NUtils

vHolder.coverImgView.setTag(imgPath);

if(imgPath.length()>10){
//存在图片路径
vHolder.coverImgView.setVisibility(View.VISIBLE);

//从SDCard读取,若不存在,再从网络中下载
Bitmap bitmap=ImageUtils.getImg(imgPath);
if(bitmap!=null){
vHolder.coverImgView.setImageBitmap(bitmap);
}else{

NUtils.get(NUtils.TYPE_IMG, imgPath, new NUtils.Callback() {

@Override
public void response(String url, byte[] bytes) {
// TODO 图片下载完成后,进行显示
ImageView imgView=(ImageView) parent.findViewWithTag(url);
if(imgView!=null){
imgView.setImageBitmap(BitmapFactory.decodeByteArray(bytes, 0, bytes.length));
}
}

@Override
public boolean isCancelled(String url) {
// TODO 判断是否取消下载图片
return parent.findViewWithTag(url)==null;
}
});

3、networkImageView

requestQueue = Volley.newRequestQueue(context);
imageLoader = new ImageLoader(requestQueue,
new ImageLoader.ImageCache() {

// 参数 在没有重写 sizeOf的时候,代表 最多存10个
private LruCache<String, Bitmap> cache = new LruCache<String, Bitmap>(
20);

@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}

@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}

});

holder.iv.setImageUrl(datas.get(position), imageLoader);

4 ImageLoader

requestQueue = Volley.newRequestQueue(this);

// 1.1 ImageLoader 创建
// 参数1 : 用于实际的网络请求
// 参数2 : ImageCache 内存缓存
imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() {

// 参数 在没有重写  sizeOf的时候,代表 最多存10个
private LruCache<String, Bitmap> cache = new LruCache<>(10);

@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}

@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}
});

imageLoader.get(
"https://www.baidu.com/img/bd_logo1.png",
ImageLoader.getImageListener(imageView, R.drawable.ic_launcher, android.R.drawable.ic_delete)
);


5\xUtils

package com.example.networkvolley;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.example.utils.VolleyUtils;
import com.lidroid.xutils.BitmapUtils;

public class adapter extends BaseAdapter {

private RequestQueue requestQueue;
private ImageLoader imageLoader;

private Context context;
private List<String> datas;

private static BitmapUtils bitmapUtils;

public adapter(Context context, List<String> datas) {
this.context = context;
this.datas = datas;
if(bitmapUtils==null)
bitmapUtils=new BitmapUtils(context);
bitmapUtils.configDefaultLoadingImage(R.drawable.ic_launcher);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
int count = 0;
if (datas != null)
count = datas.size();
return count;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return datas.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.item,
null);
holder = new ViewHolder();
holder.iv = (ImageView) convertView
.findViewById(R.id.image_view);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
//---------------1
/*requestQueue = Volley.newRequestQueue(context);
imageLoader = new ImageLoader(requestQueue,
new ImageLoader.ImageCache() {

// 参数 在没有重写 sizeOf的时候,代表 最多存10个
private LruCache<String, Bitmap> cache = new LruCache<String, Bitmap>(
20);

@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}

@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}

});*/
//--------------2
/*VolleyUtils.getLoader(context).get(datas.get(position), ImageLoader.getImageListener(
holder.iv, R.drawable.ic_launcher, android.R.drawable.ic_menu_delete));*/
/*holder.iv.setImageUrl(datas.get(position), imageLoader);*/

//---------------3
bitmapUtils.display(holder.iv, datas.get(position));

return convertView;
}

class ViewHolder {
//NetworkImageView iv;
ImageView iv;
}

}


xutils
6、Picasso

Picasso.with(context).load(path).into(holder.iv);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: