如何在 Android 中的另一个视图上制作文本动画?
-
12-09-2019 - |
题
我正在尝试在另一个视图之上为一些文本“缩小”设置动画。我的代码看起来像这样:
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 文档和其他文档 例子. 。即使指向正确方向的指针也会有所帮助。
解决方案
好了,我很高兴我不是唯一一个谁有困难的时候发现上面的非常微妙的错误。该缺陷是:
startAnimation(anim);
这是不是太明显,直到它扩展成:
this.startAnimation(anim);
,在该点它是清楚为什么外视图(即“这个”)的动画以及文本。
不隶属于 StackOverflow