Как анимировать текст над другим видом в Android?

голоса
3

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

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().

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

Задан 20/04/2009 в 18:40
источник пользователем
На других языках...                            


1 ответов

голоса
4

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

startAnimation(anim);

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

this.startAnimation(anim);

в этот момент становится ясно, почему внешний вид (то есть. «это») оживляет, а также текст.

Ответил 24/04/2009 в 05:01
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more