Domanda

Sto cercando di animare un testo 'zoom out' in cima ad un'altra vista. Il mio codice simile a:

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);
}

}

con animText essere invocato nella routine onDraw() del BoardView. Quello che sto vedendo, invece, è il scheda lo zoom out, non il testo, nonostante le chiamate di cui sopra per setAnimation().

Ho guardato nelle principali Documenti per Android e ad un altro esempio . Anche i puntatori nella giusta direzione sarebbe utile.

È stato utile?

Soluzione

Bene, sono contento di non essere l'unico che ha avuto un momento difficile trovare il bug molto sottile in quanto sopra. Il bug è:

startAnimation(anim);

, che non è troppo evidente fino a quando si espande in:

this.startAnimation(anim);

a questo punto è chiaro il motivo per cui la vista esterna (es. 'Questo') sta animando così come il testo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top