您的位置:首页 > 其它

初试Volley(一)

2014-03-26 16:46 351 查看
转http://blog.csdn.net/cj6585256/article/category/1443591

项目结构图,






xml机构图 :main中只包含一个ListView item中只包含一个ImageView



MainActivity代码:

[java]
view plaincopy

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.listView);
initData();
MListAdapter adapter = new MListAdapter(this,infos);
mListView.setAdapter(adapter);
}

[java]
view plaincopy

private void initData() {
infos = new ArrayList<Info>();
Info info1 = new Info("http://imgstatic.baidu.com/img/image/shouye/fanbingbing.jpg");
Info info2 = new Info("http://imgstatic.baidu.com/img/image/shouye/liuyifei.jpg");
Info info3 = new Info("http://imgstatic.baidu.com/img/image/shouye/wanglihong.jpg");
Info info4 = new Info("http://imgstatic.baidu.com/img/image/shouye/gaoyuanyuan.jpg");
Info info5 = new Info("http://imgstatic.baidu.com/img/image/shouye/yaodi.jpg");
Info info6 = new Info("http://imgstatic.baidu.com/img/image/shouye/zhonghanliang.jpg");
Info info7 = new Info("http://imgstatic.baidu.com/img/image/shouye/xiezhen.jpg");
Info info8 = new Info("http://imgstatic.baidu.com/img/image/shouye/yiping3.jpg");
Info info9 = new Info("http://imgstatic.baidu.com/img/image/shouye/erping4.jpg");
Info info10 = new Info("http://imgstatic.baidu.com/img/image/shouye/hangeng.jpg");
Info info11 = new Info("http://imgstatic.baidu.com/img/image/shouye/liuyan1.jpg");
Info info12 = new Info("http://imgstatic.baidu.com/img/image/shouye/liushishi1.jpg");
Info info13 = new Info("http://imgstatic.baidu.com/img/image/shouye/sunli1.jpg");
Info info14 = new Info("http://imgstatic.baidu.com/img/image/shouye/tangyan1.jpg");
Info info15 = new Info("http://imgstatic.baidu.com/img/image/shouye/zhanggenshuo1.jpg");
Info info16 = new Info("http://imgstatic.baidu.com/img/image/shouye/xiaohua0605.jpg");
infos.add(info1);
infos.add(info2);
infos.add(info3);
infos.add(info4);
infos.add(info5);
infos.add(info6);
infos.add(info7);
infos.add(info8);
infos.add(info9);
infos.add(info10);
infos.add(info11);
infos.add(info12);
infos.add(info13);
infos.add(info14);
infos.add(info15);
infos.add(info16);
}

MListAdapter:

[java]
view plaincopy

public MListAdapter(Context ctx, ArrayList<Info> infos) {
this.ctx = ctx;
this.infos = infos;
mQueue = Volley.newRequestQueue(ctx);
mImageLoader = new ImageLoader(mQueue, new BitmapCache());
}

[java]
view plaincopy

@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(ctx).inflate(R.layout.item, null);

[java]
view plaincopy

//特意不使用Holder
ImageView imageView = (ImageView) convertView.findViewById(R.id.item);
ImageListener listener = ImageLoader.getImageListener(imageView, android.R.drawable.ic_menu_rotate, android.R.drawable.ic_delete);
mImageLoader.get(getItem(position).getUrl(), listener);
return convertView;
}

BitmapCache

[java]
view plaincopy

public class BitmapCache implements ImageCache {
private LruCache<String, Bitmap> mCache;

public BitmapCache() {
int maxSize = 10 * 1024 * 1024;
mCache = new LruCache<String, Bitmap>(maxSize) {
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight();
}

};
}

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

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

}

源码地址: http://download.csdn.net/detail/cj6585256/5532845

使用后感觉:

滑动非常流畅,图片加载非常快,图片不错位





有人说下载缺少文件,把Volley源文件地址给上:http://download.csdn.net/detail/cj6585256/6407971
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: