2012-09-13 106 views

回答

2

擴展LabelField類並覆蓋它的paint(Graphics g)方法來在連續調用時繪製/擦除文本。

然後執行TimerTask並使用Timer類實例啓動它。

此任務應定期使您的自定義標籤字段無效,例如 - 每秒一次。

invalidate()調用將導致字段重繪和標籤文本將閃爍。

+0

ü可以給that.iam新blackbeery應用程序開發的任何實例 – user1213202

2

如果你不想延長LabelField,你可以安排一個TimerTask這將重複在LabelField實例上設置一個空文本和原始文本。在這種情況下,LabelField的範圍將在每次更改文本時更改。所以,這answer對我來說似乎是最完美的。檢查該答案的草稿(未編譯,未經測試)。

修改的LabelField

LabelField lbl = new LabelField() { 
    private boolean blinkFlag = false; 

    protected void paint(Graphics g) { 
     blinkFlag = !blinkFlag; 
     if (blinkFlag == false) { 
      super.paint(g); 
     } 
    } 
}; 

安排一個TimerTask

final int blinkInterval = 1000; 

TimerTask blinkTask = new TimerTask() { 
    public void run() {  
     UiApplication.getUiApplication().invokeLater(new Runnable() { 
      public void run() { 
       lbl.invalidate(); 
      }); 
     } 
    } 
}; 


(new Timer()).schedule(blinkTask , blinkInterval);