代码之家  ›  专栏  ›  技术社区  ›  pjz

如何在Android中通过另一个视图动画文本?

  •  3
  • pjz  · 技术社区  · 15 年前

    我正在尝试在另一个视图上设置一些文本“缩小”的动画。我的代码看起来像:

    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文档 example . 即使是指向正确方向的指针也会有所帮助。

    1 回复  |  直到 15 年前
        1
  •  4
  •   pjz    15 年前

    好吧,我很高兴我不是唯一一个很难在上面找到这个非常微妙的错误的人。错误是:

    startAnimation(anim);
    

    除非你把它扩展到:

    this.startAnimation(anim);
    

    在这一点上,很清楚为什么外部视图(即“这个”)和文本一样具有动画效果。