Paresseux de télécharger des images dans gridView

Dans mon application, j'ai besoin de télécharger un grand nombre de photos à partir d'url et de les afficher dans un contrôle gridView. (Il peut être entre 1-200 photos). Je ne veux pas de télécharger toutes les images à la fois. J'ai lu sur paresseux téléchargement et ma question est: puis-je obtenir seulement une partie du Json, télécharger les images dans un autre thread, et seulement si l'utilisateur de faire défiler le contrôle gridView, je vais continuer à les autres parties du Json, et ainsi de suite?

Edit: Salut à nouveau. Je veux mettre en œuvre une multi sélection dans cette gridView et je vais avoir de la difficulté à mettre en œuvre le code de la getView() la méthode de l'adaptateur. C'est l'exemple que j'utilise:exemple. Comment puis-je combiner ce code dans mon getView() méthode:

public View getView(int position, View convertView, ViewGroup parent) {
CheckableLayout l;
ImageView i;
if (convertView == null) {
i = new ImageView(Grid3.this);
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(new ViewGroup.LayoutParams(50, 50));
l = new CheckableLayout(Grid3.this);
l.setLayoutParams(new GridView.LayoutParams(GridView.LayoutParams.WRAP_CONTENT,
GridView.LayoutParams.WRAP_CONTENT));
l.addView(i);
} else {
l = (CheckableLayout) convertView;
i = (ImageView) l.getChildAt(0);
}
ResolveInfo info = mApps.get(position);
i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
return l;
}
public class CheckableLayout extends FrameLayout implements Checkable {
private boolean mChecked;
public CheckableLayout(Context context) {
super(context);
}
public void setChecked(boolean checked) {
mChecked = checked;
setBackgroundDrawable(checked ?
getResources().getDrawable(R.drawable.blue)
: null);
}
public boolean isChecked() {
return mChecked;
}
public void toggle() {
setChecked(!mChecked);
}
}

mon getView() code:

public View getView(int position, View convertView, ViewGroup parent) {
//TODO Auto-generated method stub
ViewHolder holder;
View vi = convertView;
if(convertView == null) {
vi = inflater.inflate(com.egedsoft.instaprint.R.layout.item_clickable, null);
holder = new ViewHolder();
holder.imgPhoto = (ImageView)vi.findViewById(com.egedsoft.instaprint.R.id.imageClickable);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
if (!arrayUrls.get(position).getThumbnailUrl().isEmpty()){
imageLoader.DisplayImage(arrayUrls.get(position).getThumbnailUrl(), holder.imgPhoto);
}
return vi;
}
  • Comment allez-vous faire une demande pour obtenir les données JSON? La prise en charge des sources de pagination?
  • Je reçois le "prochain" url de la source dans le cas où il n'y a plus de photos à charger
  • Lele: je vous serais reconnaissant si vous pouvez regarder sur mon édité question. Je vous remercie beaucoup pour votre aide.
  • J'ai peur, je n'ai jamais eu à utiliser une Grille de point de Vue avec la sélection. Vous devriez poster une autre question pour que.
InformationsquelleAutor user1787773 | 2012-11-07