Ich versuche App mit verschiedenen Kategorien zu erstellen, jede Kategorie Es hat eine Sammlung von Bildern, ich begann mit der ersten Kategorie mit (10 Bilder) funktioniert gut, aber wenn ich in einer anderen Kategorie zu bewegen meine Anwendung arbeiten langsam .I'm läuft mit GridView
Langsame Leistung beim Verschieben zwischen Kategorie (Artikelnavigation)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ArrayList<String> movieList = new ArrayList<>();
movieList.add("https://scontent-waw1-1.xx.fbcdn.net/v/t1.0- 9/18199348_430451573995024_7473960282002692779_n.jpg?oh=8667ffcd3ccb66892fcf4e7330f24e61&oe=59B88B8F");
View v = inflater.inflate(R.layout.fragment_art, container, false);
myGrid= (GridView) v.findViewById(R.id.gridViewCategory);
adapter =new CategoryAdapter(getActivity(),movieList);
myGrid.setAdapter(adapter);
return v;
}
}
class CategoryAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> imageId=new ArrayList<String>();
CategoryAdapter(Context context,ArrayList<String> imageId){
this.context=context;
this.imageId=imageId;
}
@Override
public int getCount() {
return imageId.size();
}
@Override
public Object getItem(int position) {
return imageId.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder{
ImageView CategoryImage;
ViewHolder(View view){
CategoryImage = (ImageView) view.findViewById(R.id.cat_imageView);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row=convertView;
ViewHolder holder=null;
if(row == null){
LayoutInflater inflater= (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
row=inflater.inflate(R.layout.picture_item,parent,false);
holder = new ViewHolder(row);
row.setTag(holder);
}
else{
holder=(ViewHolder) row.getTag();
} Glide.with(context).load(imageId.get(position)).placeholder(R.drawable.load).int o(holder.CategoryImage);
return row;
}
}
danke für die Antwort bitte, wenn Sie mehr erklären können, wie ich 'AsyncTask' in meinem Code auch verwenden kann, ich arbeite mit ** Glide Library ** und ich benutze' glide.fastcrollenabled (true) 'aber die Verzögerung noch – MrMR
Ich glaube, Ihr Problem besteht darin, dass Sie Ihre Bitmaps nicht recyceln. Du behälst einfach eine Menge großer Datenobjekte und ziehst den Hauptthread an! –
@ A. Petrizza yeeeeeeeeees du hast Recht Wenn ich meine Anwendung zum ersten Mal starte, werden Bilder hochgeladen, aber wenn ich sie wieder starte, erscheinen Bilder ohne Ladevorgang, da Bilder im Cache gespeichert sind ** Entschuldigung für mein Englisch ** – MrMR