我正试图在另一个视图上设置文本“缩小”的动画。我的代码看起来像:
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);
}
}
在
onDraw()
的BoardView
例程中调用animtext。然而,我看到的是,尽管上面调用了setAnimation()
,但板缩小了,而不是文本。我查看了主要的android文档和其他example。即使是指向正确方向的指针也会有帮助。
最佳答案
好吧,我很高兴我不是唯一一个很难在上面找到非常微妙的错误的人。错误是:
startAnimation(anim);
这一点在你将其扩展到以下领域之前并不太明显:
this.startAnimation(anim);
在这一点上,很清楚为什么外部视图(即“this”)和文本一样具有动画效果。