初试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
项目结构图,
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
相关文章推荐
- C++ ofstream和ifstream详细用法
- iOS:xib(Resource Programming Guide 部分) && IB
- JSTL核心标签库的使用
- 一个很二的方法获取微信最近5天的信息
- 评论:苹果能否有效个性化iWatch
- 2014.03.26记录
- asp.Net 缓存技术
- Android 获取唯一标识和AlertDialog的使用
- 实现互联网思维的“独孤九剑
- Objective-C的self.用法的一些总结
- 如何获得ListView、GridView 及其子项的高度
- unity3d的模型规范
- 在Win2008R2上配置Web网络负载均衡(NLB)
- NodeJs连接Mysql数据库
- 游戏经验1
- N皇后问题
- JDK7中的Fork/Join模式
- Android debug.keystore的密码
- Android侧拉框的简单实现
- 无证书