我使用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