在黑莓中操纵不透明度5

时间:2011-12-19 22:07:06

标签: blackberry

我正在构建一个需要在Blackberry 5上实现的新闻自动收录器。当从一个元素转换到下一个元素时,我正在寻找一个淡出/淡出过渡。主要是因为我无法在Blackberry 5参考中找到创建动画的资源。

我正在研究的基本流程是:

public void updateUI() {
 //fade out
 //set values
 //fade in
}

到目前为止,我已将所有UI元素包含在Horizo​​ntalFieldManager中。我试过挖掘Field和Graphics文档,但没找到我想要的东西。

请记住,支持Blackberry 5是客户的要求,而不是我的要求。

1 个答案:

答案 0 :(得分:1)

您需要使用计时器显式处理动画。

我的典型解决方案是这样的(在paint()方法中):

final long time = System.currentTimeMillis();
final int alpha;
if (startFadeIn != 0) {
    alpha = (int) Math.min((time - startFadeIn) / SPEED, 255);
       if (alpha < 255) {
           invalidate();
       }
} else if (startFadeOut != 0) {
    alpha = (int) Math.max(255 + (startFadeOut - time) / SPEED, 0);
    if (alpha > 0) {
        invalidate();
    }
} else {
    alpha = 255;
}
graphics.setGlobalAlpha(alpha);

它会消耗一些CPU周期(很短的时间),但它可以工作。