LabelField テキストを単色で継続的に点滅させるにはどうすればよいですか? Android では、AlphaAnimation で実行できます。BlackBerry でこれを行うにはどうすればよいですか?
質問する
145 次
2 に答える
2
クラスを拡張LabelField
し、そのメソッドをオーバーライドしpaint(Graphics g)
て、連続した呼び出しでテキストを描画/消去します。
次に、を実装し、クラス インスタンスTimerTask
で起動します。Timer
このタスクは、カスタム ラベル フィールドを定期的に (たとえば、毎秒) 無効にする必要があります。
invalidate()
を呼び出すと、フィールドが再描画され、ラベル テキストが点滅します。
于 2012-09-13T05:36:11.393 に答える
2
を延長したくない場合は、インスタンスに空のテキストと元のテキストを繰り返し設定するLabelField
をスケジュールできます。その場合、テキストが変更されるたびに範囲が変更されます。したがって、この答えは私にとって最も完璧に思えます。その回答のドラフト(コンパイルされておらず、テストされていない)の実装を確認してください。TimerTask
LabelField
LabelField
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);
于 2012-09-13T06:04:00.033 に答える