Frage

Ich versuche zu animieren text 'Zoomen' auf der Oberseite von einer anderen Ansicht.Mein code sieht ungefähr so aus:

class BoardView extends View {

private TextView animText;

...

private void animText(String text, int color, int xBlocks, int yBlocks) {
    animText.setText(text);
    animText.setTextColor(color);
    animText.setVisibility(View.VISIBLE);
    final int x = BOARD_X_OFFSET + xBlocks * xBlockSize;
    final int y = BOARD_Y_OFFSET + yBlocks * yBlockSize;
    final float SCALE_FROM = (float) 0.25;
    final float SCALE_TO = (float) 5.0;
    ScaleAnimation anim = new ScaleAnimation(SCALE_FROM, SCALE_TO, SCALE_FROM, SCALE_TO, x, y);
    anim.setDuration(500);
    animText.setAnimation(anim);
    this.setAnimation(null);
    startAnimation(anim);
}

}

mit animText aufgerufen wird, in der onDraw() routine der BoardView.Was bin ich zu sehen, jedoch ist die board herauszoomen, nicht der text, trotz der oben genannten Aufrufe setAnimation().

Ich habe in der Haupt-android-docs und an einer anderen Beispiel.Selbst Zeiger in die richtige Richtung wäre hilfreich.

War es hilfreich?

Lösung

Gut, ich bin froh, dass ich bin nicht der einzige, der hatte eine schwierige Zeit der Suche nach dem sehr subtilen Fehler in die oben genannten.Der Fehler ist:

startAnimation(anim);

das ist nicht zu offensichtlich, bis Sie es zu erweitern in:

this.startAnimation(anim);

an welchem Punkt ist es klar, warum die äußeren view (ie."dies") wird die Animation als auch als text.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top