2009-04-20 64 views
3

我正在嘗試在另一個視圖的上方放大一些文字'縮小'。我的代碼看起來是這樣的:如何在Android中的另一個視圖上動畫文字?

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。即使是在正確的方向指針會有所幫助。

回答

4

嗯,我很高興我不是唯一一個在上面發現非常微妙的錯誤時遇到困難的人。該缺陷是:

this.startAnimation(anim); 

在這一點很清楚爲什麼外視圖(即「本」)的動畫,以及:直到它擴展成

startAnimation(anim); 

這是不是太明顯作爲文本。

相關問題