转http://blog.csdn.net/cj6585256/article/category/1443591
项目结构图,
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
使用后感觉:
滑动非常流畅,图片加载非常快,图片不错位