ImageView Bitmap alle 30 Sek. ersetzten

:flapper:

spass bei seite.
Ich habe irgendwie ein kleines umsetzungsproblem:
entschieden habe ich mich für den TimerTask, der alle 45 sek. das Bild wechseln soll.
Allerdings blick ich das nicht wirklich
ausgegangen von diesem Link:

Android Developers Blog: A Stitch in Time

dachte ich dass das mit dem Handler ganz schön sein könnte.
allerdings erfolgt der Start nicht durch einen Buttonklick, sondern über die onResume methode.
Habt ihr dafür ein schönes tutorial oder ein kleines beispiel wie ich was wo hin schreibe, als besonders die methoden die impl. werden müssen.
Danke
 
Schau dir den ViewFlipper an, der macht genau was du willst in frei wählbaren Zeitabständen. Auch mit Animation...
 
Hallo nochmal,

wollte es jetzt nur mit einem TimerTask machen.
Allerdings wird mir kein image angezeigt, der Grund ist dass das Bild zu schnell wechselt.
Hier mal der Teil vom Code:


PHP:
@Override
    protected void onResume() {
        super.onResume();
        test();

    }

    class MyTimerTask extends TimerTask {
        @Override
        public void run() {
            Bitmap bm = NextImage();
            imgbottom.setImageBitmap(bm);
        }
    }

    public void test() {
        Timer timer = new Timer();
        timer.schedule(new MyTimerTask(), 5000, 100000);

    }

    private Bitmap NextImage() {
        int idx = _adv.getCompany().size();
        String myJpgPath = gd.getSDRootPath() + File.separator
                + _adv.getImg().get(0);

        for (int i = 0; i < idx; i++) {
            myJpgPath = gd.getSDRootPath() + File.separator
                    + _adv.getImg().get(0);
            Log.w("path", myJpgPath);
            if (i == idx - 1)
                i = 0;
        }

        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 3;
        Bitmap bm = BitmapFactory.decodeFile(myJpgPath, options);
        return bm;
    }

Aber warum wechselt das Bild so schnell, oder Was mache ich falsch damit das Bild wechselt...

Danke schon mal
 
Liegt es vielleicht nicht eher daran, dass du den bitmap Update nicht im UIThread ausführst?

Grummel, das wurde in diesem Thread(sic!) doch ausführlich diskuriert. (Sowas nervt noch mehr als die Entwicklung von "Rosa-Pixel-Pumpen").
 
Hallo,

ich wollte euch meine Lösung des genannten Problemes nicht vorenthalten, auch wenn es schon etwas länger her ist:

Code:
myanimation = new AnimationDrawable();
        for (int i = 0; i < anzahl; i++) {

            // File existiert !
            File file = new File(path);

            if (file.exists()) {
                Drawable d = Drawable.createFromPath(file.getAbsolutePath());
                if (d != null){
                    _myanimation .addFrame(d, 10000);
                }
            }
        }

        myanimation.setOneShot(false);
        imgbottom.setImageDrawable(myanimation );
zum schluss noch die Animation starten und es sollte funktionieren.
wie ihr seht geht es auch ohne Thread oder AsynTask.


LG und viel spass damit

Andr
 
  • Danke
Reaktionen: DieGoldeneMitte
Sehr elegant! :)

Hat höchstens den Nachteil, dass alle Bitmaps im Speicher bereit gehalten werden.
 

Ähnliche Themen

E
Antworten
1
Aufrufe
805
enrem
E
Hansimglueck0815
Antworten
0
Aufrufe
731
Hansimglueck0815
Hansimglueck0815
CrazyC
Antworten
3
Aufrufe
713
jogimuc
J
Zurück
Oben Unten