2009-04-20 2 views
3

Я пытаюсь анимировать какой-то текст «масштабирования» поверх другого представления. Мой код выглядит примерно так:Как анимировать текст над другим Просмотр в Android?

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

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

ответ

4

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

startAnimation(anim); 

, который не так уж очевидно, пока вы расширить его в:

this.startAnimation(anim); 

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

Смежные вопросы