Как анимировать текст поверх другого View в Android? - PullRequest
3 голосов
/ 20 апреля 2009

Я пытаюсь анимировать некоторый текст, «уменьшающий» поверх другого представления. Мой код выглядит примерно так:

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

}

с animText, вызываемым в подпрограмме onDraw() BoardView. Однако я вижу, что доска уменьшает масштаб, а не текст, несмотря на приведенные выше призывы к setAnimation().

Я просмотрел основные документы по Android и еще один пример . Даже указатели в правильном направлении были бы полезны.

1 Ответ

4 голосов
/ 24 апреля 2009

Ну, я рад, что я не единственный, кому было трудно найти очень тонкую ошибку в приведенном выше. Ошибка:

startAnimation(anim);

, что не слишком очевидно, пока вы не расширите его до:

this.startAnimation(anim);

В этот момент становится ясно, почему внешний вид (т. Е. 'This') оживляет так же, как и текст.

...