项目结构图,
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