package com.roboo.like.netease; import java.io.File; import java.util.ArrayList; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.renderscript.Script; import android.support.v4.util.LruCache; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListAdapter; import android.widget.ListView; import com.android.volley.Cache; import com.android.volley.Network; import com.android.volley.RequestQueue; import com.android.volley.toolbox.BasicNetwork; import com.android.volley.toolbox.DiskBasedCache; import com.android.volley.toolbox.HurlStack; import com.android.volley.toolbox.ImageLoader; import com.android.volley.toolbox.ImageLoader.ImageCache; public class VolleyActivity extends BaseActivity { private ListView mListView; private ListViewAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTVTitle(R.string.tv_android_volley); //TODO setContentView Tag setContentView(R.layout.activity_volley); initView(); this.mListView.setAdapter(getAdaper()); } private ListAdapter getAdaper() { this.mAdapter = new ListViewAdapter(this); return mAdapter; } /** * TODO initView * */ private void initView() { this.mListView = (ListView) findViewById(android.R.id.list); } private class ListViewAdapter extends BaseAdapter { private Context context ; private ImageLoader mImageLoader; private String[] mImageURLs = { "http://h.hiphotos.baidu.com/pic/w%3D310/sign=126f60f24610b912bfc1f0fff3fcfcb5/83025aafa40f4bfb2493b91d024f78f0f7361833.jpg", "http://e.hiphotos.baidu.com/pic/w%3D310/sign=ea488121d009b3deebbfe269fcbf6cd3/9345d688d43f879418c46e67d31b0ef41bd53abb.jpg", "http://e.hiphotos.baidu.com/pic/w%3D310/sign=dd22abe0a8014c08193b2ea43a7b025b/bf096b63f6246b603835943deaf81a4c510fa2bb.jpg", "http://g.hiphotos.baidu.com/pic/w%3D310/sign=0d4f6b89f636afc30e0c39648319eb85/6f061d950a7b020875f419a863d9f2d3572cc8bd.jpg", "http://a.hiphotos.baidu.com/pic/w%3D310/sign=b9eba9777aec54e741ec1c1f89399bfd/9d82d158ccbf6c8118de08a1bd3eb13532fa4089.jpg", "http://a.hiphotos.baidu.com/pic/w%3D310/sign=0f2f51ded833c895a67e9e7ae1137397/8ad4b31c8701a18b87dd34069f2f07082838fe40.jpg", "http://a.hiphotos.baidu.com/pic/w%3D310/sign=d936b29509fa513d51aa6adf0d6c554c/14ce36d3d539b600724a28fee850352ac75cb7f6.jpg", "http://b.hiphotos.baidu.com/pic/w%3D310/sign=e2ce8c44f9dcd100cd9cfe20428b47be/c995d143ad4bd113aaf9917b5bafa40f4bfb0546.jpg", "http://d.hiphotos.baidu.com/pic/w%3D310/sign=390e688d0bd162d985ee641d21dfa950/1b4c510fd9f9d72a5b5f3654d52a2834349bbbbb.jpg", "http://b.hiphotos.baidu.com/pic/w%3D310/sign=a6e1ab6bc9fcc3ceb4c0cf32a244d6b7/a50f4bfbfbedab64e2be6a89f636afc378311eae.jpg", "http://e.hiphotos.baidu.com/pic/w%3D310/sign=b351ab419a504fc2a25fb604d5dce7f0/18d8bc3eb13533fa1ef4b467a9d3fd1f41345b3c.jpg", "http://a.hiphotos.baidu.com/pic/w%3D310/sign=bfd8d84471cf3bc7e800cbede101babd/0e2442a7d933c8950992bc32d01373f08302008e.jpg", "http://c.hiphotos.baidu.com/pic/w%3D310/sign=6bea19e4b219ebc4c0787098b227cf79/7af40ad162d9f2d345f7026ea8ec8a136227cc48.jpg", "http://f.hiphotos.baidu.com/pic/w%3D310/sign=a7bcc3a70824ab18e016e73605fbe69a/728da9773912b31b458beba88718367adbb4e148.jpg", "http://e.hiphotos.baidu.com/pic/w%3D310/sign=424141d7d1160924dc25a41ae406359b/f703738da977391247a7a3e0f9198618377ae2aa.jpg", "http://b.hiphotos.baidu.com/pic/w%3D310/sign=47c6c188b7003af34dbada61052bc619/b8389b504fc2d562f420f16ce61190ef76c66c02.jpg", "http://e.hiphotos.baidu.com/album/h%3D1024%3Bcrop%3D0%2C0%2C1280%2C1024/sign=af09da5b14ce36d3bd04873008c701e4/f703738da977391247a7a3e0f9198618377ae2aa.jpg" }; public ListViewAdapter(Context context) { super(); this.context = context; RequestQueue queue = null; //queue = Volley.newRequestQueue(context);//默认缓存图片存放在/data/data/pacakgename/cache/volley/目录下,需要手机root后才可以看到 Cache cache = new DiskBasedCache(new File("/mnt/sdcard/android","volley")); Network network = new BasicNetwork(new HurlStack()); queue = new RequestQueue(cache, network); queue.start(); ImageCache imageCache = new BitmapCache(); this.mImageLoader = new ImageLoader(queue, imageCache); } @Override public int getCount() { return mImageURLs.length; } @Override public Object getItem(int position) { return mImageURLs[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ImageView imageView = new ImageView(context); mImageLoader.get(mImageURLs[position],ImageLoader.getImageListener(imageView, R.drawable.ic_stub, R.drawable.ic_error)); imageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(VolleyActivity.this,ShowImageActivity.class); intent.putExtra("srcs", mImageURLs); intent.putExtra("index", position); startActivity(intent); } }); return imageView; } private class BitmapCache implements ImageCache { private static final int MAX_CACHE_SIZE= 10*1024*1024; private LruCache<String , Bitmap> mLruCache = new LruCache<String, Bitmap>(MAX_CACHE_SIZE); @Override public Bitmap getBitmap(String url) { return mLruCache.get(url); } @Override public void putBitmap(String url, Bitmap bitmap) { mLruCache.put(url, bitmap); } } } }