- Forum-Beiträge: 41
01.03.2012, 13:06:46 via Website
01.03.2012 13:06:46 via Website
kann ich irgendwie festellen wann die Liste von meinem adapter fertig geladen hat?
ich setze in meiner Listactivity den adapter:
2 getListView().setAdapter(adapter);
3 getListView().setOnScrollListener(this);
und dort füge ich die Bildernamen in eine Lokale ArrayListe (data[2] ist der name zb test.jpg):
2 imageViewItemList.add(item);
Wenn die normalen Daten gesetzt sind möchte ich die Bilder laden:
2 imageDownloader.execute((ArrayList<ImageViewItem>[]) null);
2
3 @Override
4 protected Void doInBackground(ArrayList<ImageViewItem>... params) {
5 try {
6 Bitmap bitmap = null;
7 for (ImageViewItem tmp : imageViewItemList) {
8 String imageName = tmp.getImageName();
9 String URL_PATH = ("http://www.meineseite.de/images/" + imageName).replace(" ", "%20");
10 File cacheDir = new File(android.os.Environment.getExternalStorageDirectory(), "cache");
11 if (!cacheDir.exists()) {
12 cacheDir.mkdirs();
13 }
14 String mimeType = tmp.getImageName().substring(imageName.length() - 3);
15 File f = new File(cacheDir, String.valueOf(URL_PATH.hashCode()) + "." + mimeType);
16 Log.d("IMAGEDOWNLOADER", "Mimetype is: " + mimeType);
17 if (f.exists()) {
18 bitmap = BitmapFactory.decodeStream(new FileInputStream(f), null, null);
19 tmp.getView().setImageBitmap(bitmap);
20 Log.i("IMAGEDOWNLODER", "Load image from local cache.");
21 }
22 else {
23 URL imageUrl = new URL(URL_PATH);
24
25 HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
26 conn.setConnectTimeout(30000);
27 conn.setReadTimeout(30000);
28 conn.setInstanceFollowRedirects(true);
29 InputStream is = conn.getInputStream();
30
31 OutputStream os = new FileOutputStream(f);
32
33 byte[] buffer = new byte[1024];
34 // copy stream
35 while (true) {
36 int count = is.read(buffer, 0, 1024);
37 if (count == -1) break;
38 os.write(buffer, 0, 1024);
39 }
40 conn.disconnect();
41 is.close();
42 os.close();
43 }
44 bitmap = BitmapFactory.decodeStream(new FileInputStream(f), null, null);
45 tmp.getView().setImageBitmap(bitmap);
46 Log.i("IMAGEDOWNLODER", "Loaded image from weg.");
47 }
48 }
49 catch (Exception e) {
50 e.printStackTrace();
51 return null;
52 }
53 return null;
54 }
Dieser soll mir zu den Imageviews dann die Bilder laden und setzen. Jetzt frage ich mich wie ich den AsyncLoader am besten aufruf bzw. wann - dachte mir wenn er die Liste geladen hat damit er danach die Bilder lädt und setzt?
Hab diese Methode im Web gefunden - jemand ne idee?
lg
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.