如何连续使用单一颜色使LabelField文本闪烁?在Android中,它可以使用AlphaAnimation完成。我如何在BlackBerry上执行此操作?
答案 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);