0

LabelField テキストを単色で継続的に点滅させるにはどうすればよいですか? Android では、AlphaAnimation で実行できます。BlackBerry でこれを行うにはどうすればよいですか?

4

2 に答える 2

2

クラスを拡張LabelFieldし、そのメソッドをオーバーライドしpaint(Graphics g)て、連続した呼び出しでテキストを描画/消去します。

次に、を実装し、クラス インスタンスTimerTaskで起動します。Timer

このタスクは、カスタム ラベル フィールドを定期的に (たとえば、毎秒) 無効にする必要があります。

invalidate()を呼び出すと、フィールドが再描画され、ラベル テキストが点滅します。

于 2012-09-13T05:36:11.393 に答える
2

を延長したくない場合は、インスタンスに空のテキストと元のテキストを繰り返し設定するLabelFieldをスケジュールできます。その場合、テキストが変更されるたびに範囲が変更されます。したがって、この答えは私にとって最も完璧に思えます。その回答のドラフト(コンパイルされておらず、テストされていない)の実装を確認してください。TimerTaskLabelFieldLabelField

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 に答える