Androidの中で別のビューでテキストをアニメーション化する方法は?

StackOverflow https://stackoverflow.com/questions/769326

質問

私は別のビューの上にいくつかのテキスト「ズームアウト」をアニメーション化しようとしています。私のコードは次のようになります。

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()への上記の呼び出しにもかかわらず、テキストではなく、ズームアウトます。

私は、メインアンドロイドドキュメントで他1 例に。右方向にしてもポインタが参考になる。

役に立ちましたか?

解決

まあ、私は私が上記で非常に微妙なバグを見つけるのは難しい時間を過ごしただけではないんだうれしいです。バグがあります:

startAnimation(anim);

あなたにそれを展開するまではあまり明らかにされていません。

this.startAnimation(anim);

これで外側のビュー(すなわち「これは」)、テキストだけでなく、アニメーションされている理由、それは明らかです指します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top