我使用Google排球庫創建了一個圖像加載器。我的問題是,我不知道如何爲每個請求設置優先級。有人能幫我解決嗎?下面顯示的是代碼。我應該在哪裏設置優先級?設置排球優先級ImageLoader
Main Activity
public class MainActivity extends ActionBarActivity {
ListView list;
ImageLoader mImageLoader;
ImageAdapter imageAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = (ListView) findViewById(R.id.list);
mImageLoader = MyVolley.getInstance(this).getImageLoader();
imageAdapter = new ImageAdapter(this, mImageLoader);
list.setAdapter(imageAdapter);
}
}
Adapter class
public class ImageAdapter extends BaseAdapter {
Context context;
NetworkImageView nImgView;
ImageLoader mImageLoader;
public ImageAdapter(Context context, ImageLoader mImageLoader) {
this.context = context;
this.mImageLoader = mImageLoader;
}
@Override
public int getCount() {
return ImageLinkArray.imageUrl.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_adapter_layout,
parent, false);
}
nImgView = (NetworkImageView) convertView
.findViewById(R.id.networkImageView);
nImgView.setAdjustViewBounds(true);
nImgView.setImageUrl(ImageLinkArray.imageUrl[position], mImageLoader);
return convertView;
}
}
MyVolley class
public class MyVolley {
private static MyVolley mVolleyInstance;
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private static Context mContext;
private MyVolley(Context context) {
mContext = context;
mRequestQueue = getRequestQueue();
mImageLoader = new ImageLoader(mRequestQueue,
new ImageLoader.ImageCache() {
private final LruCache<String, Bitmap> cache = new LruCache<>(
ImageLinkArray.imageUrl.length);
@Override
public void putBitmap(String url, Bitmap bitmap) {
// TODO Auto-generated method stub
cache.put(url, bitmap);
}
@Override
public Bitmap getBitmap(String url) {
// TODO Auto-generated method stub
return cache.get(url);
}
});
}
public static synchronized MyVolley getInstance(Context context) {
if (mVolleyInstance == null) {
mVolleyInstance = new MyVolley(context);
}
return mVolleyInstance;
}
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
// use the application context
mRequestQueue = Volley.newRequestQueue(mContext
.getApplicationContext());
}
return mRequestQueue;
}
public <T> void addToRequestQueue(Request<T> req) {
getRequestQueue().add(req);
}
public ImageLoader getImageLoader() {
return mImageLoader;
}
}
看看這個SO問題。它可以幫助你... http://stackoverflow.com/questions/17641108/setting-request-priority-volley – alpinescrambler 2014-09-04 06:16:33
這是爲字符串請求權?我正在使用圖像請求 – 2014-09-04 06:25:15
如果您在這裏查看ImageRequest的源代碼(https://android.googlesource.com/platform/frameworks/volley/+/master/src/com/android/volley/toolbox/ImageRequest.java ),您可以看到「默認」優先級較低。創建你自己的「ImageRequest」類(複製和粘貼),但將優先級設置爲高... – alpinescrambler 2014-09-04 06:39:31