Image 带有通用图像加载器的Gridview图像加载缓慢

Image 带有通用图像加载器的Gridview图像加载缓慢,image,gridview,loader,universal,auto-populating,Image,Gridview,Loader,Universal,Auto Populating,我正在使用universal image loader从assets gallary将缩略图填充到gridview中,但在上下滚动期间图像加载速度较慢,因此我认为,因为图像是以当前分辨率加载的,所以我可以如何更改图像的分辨率,例如,我使用createScaledBitmap进行缩放位图 这是我的密码: public class ImageAdapter extends BaseAdapter { private Context mContext; private List<String&g

我正在使用universal image loader从assets gallary将缩略图填充到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 ;
公共类ImageAdapter扩展了BaseAdapter{
私有上下文;
私人名单;
私营机构;
私人英特姆维兹;
私有输入流是;
私人网页;
私有图像加载器;
公共ImageAdapter(上下文上下文、列表、整数高度、整数宽度){
mContext=上下文;
mList=列表;
mheight=高度;
mwidth=宽度;
ImageLoader ImageLoader=ImageLoader.getInstance();
this.imageLoader=imageLoader;
}
@凌驾
public int getCount(){
返回mList.size();
}
@凌驾
公共对象getItem(int位置){
返回mList.get(position.toString();
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
图像视图图像视图;
if(convertView==null){
imageView=新的imageView(mContext);
}否则{
imageView=(imageView)convertView;
}
File cacheDir=新文件(Environment.getExternalStorageDirectory(),“UniversalImageLoader/Cache”);
ImageLoaderConfiguration配置=新建ImageLoaderConfiguration.Builder(mContext)
.线程池大小(5)
.memoryCacheExtraOptions(mwidth/3,mwidth/3)
.threadPriority(Thread.MIN_PRIORITY)
.memoryCache(新的UsingFreqLimitedMemoryCache(5000000))//您可以传递自己的内存缓存实现
.discCache(新的UnlimitedDiscCache(cacheDir))//您可以传递自己的磁盘缓存实现
.build();
init(config);
//
//
//显示选项
DisplayImageOptions=new DisplayImageOptions.Builder()
.showStubImage(R.可绘制.加载)
.showImageForEmptyUri(R.可牵引装载)
.cacheInMemory()
.cacheOnDisc()
.bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(imageScaleType.Justice)
.build();
////为ImageLoader创建配置
字符串imString=mList.get(位置);
String imageria=“资产:/”+imString;
imageView.setScaleType(imageView.ScaleType.CENTER\U裁剪);
setLayoutParams(新的GridView.LayoutParams(mwidth/3,mwidth/3));
displayImage(imageUria、imageView、选项);
返回图像视图;
}
}

这可能与您从网站下载的图像的分辨率有关。我不太确定UniversalImageLoader是否会让你控制它。你认为这是加载速度慢的原因吗?尽管我的源代码不是来自网站,而是来自Asset能否在onCreate中初始化生成器和所有内容(所有设置),并且只在getView(…)中执行imageView函数(最后3行)?尝试一下。尝试一下可能会比以前快一点,但仍然是存根图像(在图像加载过程中,存根图像将显示在ImageView中)在图像显示前会持续一秒一整秒?它确实取决于图像分辨率。。。