Es ist eine grundlegende App, wo Sie auf die Aufnahme klicken, wenn ein Bild erscheint. Ein Bild erscheint alle 5 Sekunden. Allerdings werden alle meine Bilder gleichzeitig mit dem folgenden Code geladen.Ich muss mehrere Bilder nacheinander in einem bestimmten Intervall laden
Ich rufe loadImage, um ein Bild zu laden, und dann ShootHandler, um es nach 5 Sekunden zu entfernen. Ich bin mir nicht sicher, ob ich AsyncTask oder so etwas verwenden muss.
void run() {
int i;
for(i = 0; i < imageList.length; i++) {
loadImage(i);
shootHandler(i);
}
}
private void shootHandler(final int trialNumber) {
loadImage(trialNumber);
handler.postDelayed(new Runnable() {
public void run() {
resetButtons(trialNumber);
}
}, 5000);
}
private void loadImage(int trialNumber) {
Glide.with(getApplicationContext()).load(R.drawable.red_btn).into(shoot);
int resID = getApplication().getResources().getIdentifier(imageList[trialNumber].name, "drawable", getApplicationContext().getPackageName());
Glide.with(getApplicationContext()).load(resID).into(imageList[trialNumber].image);
}
Alle Bilder Last auf einmal, weil 'loadimage (trialNumber);' ist nicht innerhalb eines Handlers –
Das Einfügen in einen Handler würde keinen Unterschied machen, da postDelayed() den aufrufenden Thread nicht blockiert. Ich habe gerade versucht, das Bild für 1 Sekunde zu verzögern und alle Bilder erscheinen immer noch zur gleichen Zeit. – TraderJosh
Sie sagten, Sie wollten eine Verzögerung, ich spreche nicht über den aufrufenden Thread. Sie haben eine For-Schleife, die 'loadImage' aufruft, ohne zu warten, also" alle Bilder gleichzeitig laden " –