Я создал загрузчик изображений с помощью Google volley library. Моя проблема в том, что я не знаю, как установить приоритет для каждого запроса. Может ли кто-нибудь помочь мне с тем же? Ниже показан код. Где я должен установить приоритет?Установка приоритета для Volley 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;
}
}
ознакомьтесь с этим ВОПРОСОМ. Это может помочь вам ... http://stackoverflow.com/questions/17641108/setting-request-priority-volley – alpinescrambler
Это для запроса строки правильно? я использую запрос изображения –
Если вы посмотрите исходный код ImageRequest здесь (https://android.googlesource.com/platform/frameworks/volley/+/master/src/com/android/volley/toolbox/ImageRequest.java), вы можете видеть, что приоритет «по умолчанию» низкий. Создайте свой собственный класс «ImageRequest» (скопируйте и вставьте), но установите приоритет на высокий ... – alpinescrambler