现在的位置: 首页 > 综合 > 正文

初试Volley(一)

2013年10月02日 ⁄ 综合 ⁄ 共 3104字 ⁄ 字号 评论关闭

项目结构图,

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

MainActivity代码:

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

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:

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

@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		convertView = LayoutInflater.from(ctx).inflate(R.layout.item, null);
//特意不使用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

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

抱歉!评论已关闭.