如何在Android中将文本动画放置在另一个视图上方?

5

我正在尝试在另一个视图上方对一些文本进行“缩小”的动画效果。我的代码大致如下:

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

}

BoardViewonDraw()例程中调用animText。然而,尽管上述调用了setAnimation(),但我看到的是board缩小,而不是文本缩小。我已经查看了主要的Android文档和另一个示例。即使是指向正确方向的指针也会很有帮助。
1个回答

5

很高兴我不是唯一一个在以上代码中寻找非常微小的错误的人。这个错误是:

startAnimation(anim);

直到你将其展开为止,否则它并不太明显:

this.startAnimation(anim);

此时,很明显为什么外部视图(即“this”)以及文本都在进行动画。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接