使用universalimageloader时,Android GridView With Image速度太慢
我在我的项目中使用了universalimageloader来显示许多图像 当我试图显示图像时,它太慢了,在显示图像的注释行之后,它也显示行,但不慢 我尝试的代码是:使用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
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());
}埃尔斯