0

如何用一种颜色连续闪烁 LabelField 文本?在 Android 中,它可以通过 AlphaAnimation 来完成。我如何在黑莓上做到这一点?

4

2 回答 2

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 回答
2

扩展LabelField类并覆盖其paint(Graphics g)方法以在连续调用时绘制/擦除文本。

然后实现 a并使用类实例TimerTask启动它。Timer

此任务应定期使您的自定义标签字段无效,例如 - 每秒钟。

invalidate()调用将导致字段重绘和标签文本将闪烁。

于 2012-09-13T05:36:11.393 回答