Gridview с универсальным загрузчиком изображений загружаются медленно

Я использую универсальный загрузчик изображений для заполнения миниатюр в виде сетки из галереи ресурсов, но изображения загружаются медленно при прокрутке вверх или вниз, поэтому я думаю, потому что изображения загружаются с его текущим разрешением, так как я могу изменить разрешение изображений, например, я используется для использования createScaledBitmap чтобы уменьшить растровое изображение Вот мой код:

public class ImageAdapter extends BaseAdapter {
private Context mContext;
private List<String> mList;
private int mheight;
private int mwidth;
private InputStream is;
private HomePage homePage;
private ImageLoader imageLoader;




public ImageAdapter(Context context, List<String> list, int height, int width) {
    mContext = context;
    mList = list;
    mheight = height;
    mwidth = width;
    ImageLoader imageLoader = ImageLoader.getInstance();
    this.imageLoader = imageLoader;

}


@Override
public int getCount() {
    return mList.size();
}

@Override
public Object getItem(int position) {
    return mList.get(position).toString();
}

@Override
public long getItemId(int position) {
    return 0;
}





@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {
        imageView = new ImageView(mContext);
    } else {
        imageView = (ImageView) convertView;
    }


    File cacheDir = new File(Environment.getExternalStorageDirectory(),    "UniversalImageLoader/Cache");
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(mContext)
   .threadPoolSize(5)
   .memoryCacheExtraOptions(mwidth/3, mwidth/3)
   .threadPriority(Thread.MIN_PRIORITY )
    .memoryCache(new UsingFreqLimitedMemoryCache(5000000)) // You can pass your own memory cache implementation
    .discCache(new UnlimitedDiscCache(cacheDir)) // You can pass your own disc cache implementation
    .build();

    imageLoader.init(config);
 //
 //
    //display options
    DisplayImageOptions options = new DisplayImageOptions.Builder()
    .showStubImage(R.drawable.loading)
    .showImageForEmptyUri(R.drawable.loading)
    .cacheInMemory()
    .cacheOnDisc() 
    .bitmapConfig(Bitmap.Config.RGB_565)
    .imageScaleType(ImageScaleType.EXACTLY)
    .build();

//        // Create configuration for ImageLoader

    String imString = mList.get(position);
    String imageUria = "assets://"+imString;

   imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
   imageView.setLayoutParams(new GridView.LayoutParams(mwidth/3, mwidth/3));
   imageLoader.displayImage(imageUria, imageView ,options );
     return imageView ;

}}

0 ответов

Другие вопросы по тегам