Animationen über Thread ausführen

M

MichaelS

Erfahrenes Mitglied
51
Hallo zusammen,

ich habe momentan das Problem, dass ich es nicht hinbekomme, eine View in nem Thread zu aktualisieren und diese per Animation dan einzublenden...

Ich hab es bereits mit Handler und Runable probiert aber die Animation wird einfach nicht ausgeführt =(

Als neben Information, die View an sich, wird in einer Tabelle gerendert. Und nur diese eine View wird getriggert, nicht die Tabelle selber. Jedoch bekomme ich die Animation nicht ausgeführt...

Kann mir jeman vielleich bissl Pseudo Code hier rein werfen? ;) Wäre sehr dankbar =)

EDIT: es scheint wohl ein generelles problem mit der listview zu geben =/ ich habe eine listview, und einen thread, der die daten in der listview anpassen soll... das ändern soll durch eine animation verdeutlicht werden...

jedoch passiert die animation nur, wenn ich einmal in der tabelle runter scrolle und wieder hoch... ich weiß wirklich nicht, was ich für ein fehler mache =(


EDIT2: Problem wurde gefunden.... Das Property android:layout_weight="1" in nem LinearLayout, hat das Problem verursacht... warum, fragt google bitte aber ich werde probieren morgen, das ganze mit relativeLayouts zu machen und hoffen, dass es dort dan geht ansonsten kann man schon die weiße jacke holen :D

Gruß
MichaelS
 
Zuletzt bearbeitet:
Ich habe das auch alles ausprobiert, bis es funktioniert hat.

Entscheidend ist es, die Aktion, die Dein UI manipuliert im sog. UI-Thread auszuführen.

Das siehst Du in setSeekProgress(). Ich bediene hier einen SeekBar, durch dessen ChangeListener in einem View das Bild ausgetauscht wird.

Code:
    public void onCheckedChanged(CompoundButton check, boolean arg1) {
        if (check.isChecked()) {
            animThread = new AnimateThread();
            animThread.start();
        } else {
            animThread.setRunIt(false);
        }
    }

    private class AnimateThread extends Thread {
        boolean runIt = true;
 
        public void run() {
            while(runIt) {
                [...]
                setSeekProgress(index);
            }
        }
        public void setRunIt(boolean runIt) {
            this.runIt = runIt;
        }
    }

    private void setSeekProgress(final int _index) {
        runOnUiThread(
            new Runnable() {
                public void run() {
                    seeker.setProgress(_index);
                }
            }
        );
    }
 
hm ich glaub ich hab garkein problem mehr mit den threads sondern irgend was anderes... ich hab es nun nochmal mit runOnUIThread probiert und gleiches ergebnis...

erst wenn das item in der listview nicht mehr sichtbar ist und ich wieder zum iitem scrolle, funktioniert es fehlerlos.... vorher bleibt die animation einfach hängen... ich weiß nicht wieso... ich werd mir mal morgen nen einfaches beispiel entwickeln und dan können wir nochmal weiter raten =)

Ansonsten, wenn jemand noch ideen hat, bin ich immer sehr sehr dankbar =)

Gruß
MichaelS
 
hey zusammen...

anscheind ist es kein programmierfehler von mir an sicht, da ich nun das problem nachgebaut habe und es fehlerfrei funktioniert... also muss es nen bug in der ursprünglichen app sein... nun fängt die schöne suche an ;)

Also ihr braucht nun restmal kein tipps mehr geben... ich melde mich wieder, wenn ich wieder paar tipps hab ;)

gruß
MichaelS
 
Problem gefunden - > siehe ersten post (edit2)
 

Ähnliche Themen

C
Antworten
8
Aufrufe
1.127
swa00
swa00
S
Antworten
4
Aufrufe
4.479
mblaster4711
mblaster4711
L
Antworten
5
Aufrufe
819
swa00
swa00
Zurück
Oben Unten