使用universalimageloader时,Android GridView With Image速度太慢

使用universalimageloader时,Android GridView With Image速度太慢,android,gridview,baseadapter,Android,Gridview,Baseadapter,我在我的项目中使用了universalimageloader来显示许多图像 当我试图显示图像时,它太慢了,在显示图像的注释行之后,它也显示行,但不慢 我尝试的代码是: public class GridAdapterMa extends BaseAdapter { ArrayList<JobItem> objects = new ArrayList<JobItem>(); int size = 0; private String TAG = Gr

我在我的项目中使用了universalimageloader来显示许多图像 当我试图显示图像时,它太慢了,在显示图像的注释行之后,它也显示行,但不慢 我尝试的代码是:

public class GridAdapterMa extends BaseAdapter {

    ArrayList<JobItem> objects = new ArrayList<JobItem>();
    int size = 0;
    private String TAG = GridAdapterMa.class.getSimpleName();
    ImageLoader imageLoader;
    DisplayImageOptions options;
    ImageLoaderConfiguration config;
    public GridAdapterMa(ArrayList<JobItem> objects) {
        size = objects.size();
        this.objects.addAll(objects);
        ExceptionHelpers.dLog(TAG, "Constructor");
        imageLoader = ImageLoader.getInstance();
        options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.drawable.thumb_square)
                .showImageForEmptyUri(R.drawable.thumb_square)
                .showImageOnFail(R.drawable.thumb_square)
                // .cacheInMemory(false)
                .cacheOnDisc(true)
                .resetViewBeforeLoading(true)
                // .delayBeforeLoading(100)
                .considerExifParams(true)
                .bitmapConfig(Bitmap.Config.RGB_565)
                .displayer(new SimpleBitmapDisplayer())
                /*.preProcessor(new BitmapProcessor() {
                    @Override
                    public Bitmap process(Bitmap bitmap) {
                        int w = (int) (UIHelpers.width * 0.50);
                        float r = ((float) bitmap.getHeight() / (float) bitmap.getWidth());
                        int h = (int) (w * r);
                        ExceptionHelpers.dLog(TAG, "Adapter Width : " + w + " Height : " + h + " R : " + r);
                        ExceptionHelpers.dLog(TAG, "Adapter Width : " + bitmap.getWidth() + " Height : " + bitmap.getHeight());
                        return Bitmap.createScaledBitmap(bitmap, w, h, false);
                    }
                })*/
                .build();
        config = new ImageLoaderConfiguration.Builder(App.context)
                .defaultDisplayImageOptions(options)
                .memoryCacheSize(41943040)
                .discCacheSize(104857600)
                .threadPoolSize(10)
                .build();
    }
    @Override
    public int getCount() {
        return size;
    }
    @Override
    public JobItem getItem(int position) {

        return null;
    }
    @Override
    public long getItemId(int position) {
        return position;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        try {
            if(convertView==null){
                LayoutInflater vi = (LayoutInflater) App.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                if(UIHelpers.screen_density >= 4){
                    convertView = vi.inflate(R.layout.grid_ma_xl, null);
                }else{
                    convertView = vi.inflate(R.layout.grid_ma_m, null);
                }

                holder = new ViewHolder();
                holder.img =(ImageView) convertView.findViewById(R.id.img_image_gv_ma);
                holder.imgVip = (ImageView) convertView.findViewById(R.id.img_vip_gv_ma);
                holder.txtTitle = (TextView) convertView.findViewById(R.id.txt_title_gv_item);
                holder.txtCat = (TextView) convertView.findViewById(R.id.txt_cat_gv_item);
                holder.txtDesc = (TextView) convertView.findViewById(R.id.txt_desc_gv_item);
                convertView.setTag(holder);
            }else{
                holder = (ViewHolder)convertView.getTag();
            }
            Typeface tf = Typeface.createFromAsset(App.context.getAssets(), "b_yekan.ttf");
            Typeface tf1 = Typeface.createFromAsset(App.context.getAssets(), "b_mitra.ttf");
            holder.txtTitle.setTypeface(tf1);
            holder.txtCat.setTypeface(tf);
            holder.txtDesc.setTypeface(tf);
            holder.txtTitle.setTextSize(UIHelpers.titleFont);
            holder.txtCat.setTextSize(UIHelpers.descFont);
            holder.txtDesc.setTextSize(UIHelpers.descFont);
            if(objects.get(position).getjVip()==1) {
                holder.imgVip.setVisibility(View.VISIBLE);
            } else if (objects.get(position).getjVip()==0) {
                holder.imgVip.setVisibility(View.INVISIBLE);
            }
            String imgURL = "";
            imgURL = imgURL + objects.get(position).getjImage();
            // ExceptionHelpers.dLog(TAG, "imgURL : '" + imgURL + "'");
            /*if(imgURL.equals("http://www.yazdjobs.com/null") ||
                    imgURL.equals("http://www.yazdjobs.com/") ||
                    imgURL.equals("http://yazdjobs.com/null") ||
                    imgURL.equals("http://yazdjobs.com/")){
                imgURL = "http://www.yazdjobs.com/wp-content/themes/yazdjobs/images/no-image.png";
            }*/
            // ExceptionHelpers.dLog(TAG, "imgURL : '" + imgURL + "'");
            // ExceptionHelpers.dLog(TAG, "Position : "+position+" / "+objects.size());
            // Show Images
            // imageLoader.init(ImageLoaderConfiguration.createDefault(App.context));

            imageLoader.init(config);
            ImageAware imageAware = new ImageViewAware(holder.img, false);
            imageLoader.displayImage(imgURL, imageAware, options);

            /*Picasso.with(App.context)
                    .load(imgURL)
                    .placeholder(R.drawable.thumb_square)
                    .error(R.drawable.thumb_square)
                    .into(holder.img);*/
            holder.txtTitle.setText(objects.get(position).getjTitle());
            holder.txtCat.setText(objects.get(position).getjCatName());
            if(UIHelpers.screen_density >= 4){
                holder.txtDesc.setText(objects.get(position).getjDescLimit());
            }else{
                holder.txtDesc.setText(objects.get(position).getjDesc());
            }
        } catch (Exception e) {
            ExceptionHelpers.catchMessage(e);
            ExceptionHelpers.eLog(TAG, "Error in Grid Adapter >> " + e, e);
        }
        return convertView;
    }
    public class ViewHolder {
        private ImageView img;
        private ImageView imgVip;
        private TextView txtTitle;
        private TextView txtCat;
        private TextView txtDesc;
    }
}
公共类GridAdapterMa扩展BaseAdapter{
ArrayList对象=新的ArrayList();
int size=0;
私有字符串标记=GridAdapterMa.class.getSimpleName();
图像加载器;
显示图像选项;
ImageLoaderConfiguration配置;
公共GridAdapterMa(ArrayList对象){
size=objects.size();
this.objects.addAll(对象);
dLog(标记“构造函数”);
imageLoader=imageLoader.getInstance();
选项=新建DisplayImageOptions.Builder()
.showImageOnLoading(右拉深拇指方)
.showImageForEmptyUri(右拉深拇指方)
.showImageOnFail(R.drawable.thumb_square)
//.cacheInMemory(false)
.cacheOnDisc(正确)
.ResetViewBefore加载(真)
//.装货前延迟(100)
.considerExifParams(真)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(新的simplebitmadisplayer())
/*.预处理器(新的位图处理器(){
@凌驾
公共位图进程(位图){
int w=(int)(UIHelpers.width*0.50);
float r=((float)bitmap.getHeight()/(float)bitmap.getWidth());
int h=(int)(w*r);
异常助手.dLog(标签,“适配器宽度:+w+”高度:+h+“R:+R”);
dLog(标记,“适配器宽度:+bitmap.getWidth()+”高度:+bitmap.getHeight());
返回位图.createScaledBitmap(位图,w,h,false);
}
})*/
.build();
config=newImageLoaderConfiguration.Builder(App.context)
.defaultDisplayImageOptions(选项)
.memoryCacheSize(41943040)
.discCacheSize(104857600)
.线程池大小(10)
.build();
}
@凌驾
public int getCount(){
返回大小;
}
@凌驾
公共作业项目getItem(内部位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
试一试{
if(convertView==null){
LayoutInflater vi=(LayoutInflater)App.context.getSystemService(context.LAYOUT\u INFLATER\u SERVICE);
如果(UIHelpers.screen_density>=4){
convertView=vi.充气(R.布局.网格,空);
}否则{
convertView=vi.充气(R.布局.网格,空);
}
holder=新的ViewHolder();
holder.img=(ImageView)convertView.findViewById(R.id.img\u image\u gv\u ma);
holder.imgVip=(ImageView)convertView.findViewById(R.id.img\u vip\u gv\u ma);
holder.txtTitle=(TextView)convertView.findViewById(R.id.txt_title_gv_item);
holder.txtCat=(TextView)convertView.findViewById(R.id.txt_cat_gv_项);
holder.txtDesc=(TextView)convertView.findViewById(R.id.txt_desc_gv_项);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
Typeface tf=Typeface.createFromAsset(App.context.getAssets(),“b_yekan.ttf”);
Typeface tf1=Typeface.createFromAsset(App.context.getAssets(),“b_mitra.ttf”);
holder.txtTitle.setTypeface(tf1);
支架.txtCat.SETTYPE(tf);
holder.txtDesc.SETTYPE(tf);
holder.txtTitle.setTextSize(UIHelpers.titleFont);
holder.txtCat.setTextSize(UIHelpers.descFont);
holder.txtDesc.setTextSize(UIHelpers.descFont);
if(objects.get(position.getjVip()==1){
holder.imgVip.setVisibility(View.VISIBLE);
}else if(objects.get(position.getjVip()==0){
holder.imgVip.setVisibility(视图不可见);
}
字符串imgURL=“”;
imgURL=imgURL+objects.get(position.getjImage();
//dLog(标记,“imgURL:'”+imgURL+“”);
/*如果(imgURL.equals)http://www.yazdjobs.com/null") ||
imgURL.equals(“http://www.yazdjobs.com/") ||
imgURL.equals(“http://yazdjobs.com/null") ||
imgURL.equals(“http://yazdjobs.com/")){
imgURL=”http://www.yazdjobs.com/wp-content/themes/yazdjobs/images/no-image.png";
}*/
//dLog(标记,“imgURL:'”+imgURL+“”);
//ExceptionHelpers.dLog(标记“Position:+Position+”/“+objects.size());
//显示图像
//init(ImageLoaderConfiguration.createDefault(App.context));
init(config);
ImageAware ImageAware=新ImageViewAware(holder.img,false);
显示图像(imgURL、imageAware、选项);
/*毕加索。with(App.context)
.负载(imgURL)
.占位符(R.可绘制.拇指方)
.错误(R.可绘制.拇指方)
.into(holder.img)*/
holder.txtitle.setText(objects.get(position.getjTitle());
holder.txtCat.setText(objects.get(position.getjCatName());
如果(UIHelpers.screen_density>=4){
holder.txtDesc.setText(objects.get(position.getjDescLimit());
}埃尔斯