在BlackBerry中使用Blink Labelfield文本

时间:2012-09-13 04:29:19

标签: animation blackberry java-me

如何连续使用单一颜色使LabelField文本闪烁?在Android中,它可以使用AlphaAnimation完成。我如何在BlackBerry上执行此操作?

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分: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);