我正在用 Java 编写一些自定义控件,并使用动画进行过渡/淡入淡出/移动。
我这样做的方式是我开始一个新线程并对变量进行调整,并且使用paint()
方法调整事物。
例子:
现在,我的问题是,假设我正在实现淡入。我要做的是增加 alpha 变量byte x //between 0-255
并绘制一个矩形alphaLevel += x
,例如(在伪代码中):
byte increment = 40;
for (byte i = 0; i < 255; i += increment)
{
_parentClass.setAlphaLevel (i);
_parentClass.repaint();
Thread.sleep (10);
}
_parentClass.setAlphaLevel (255);
我想知道什么是最低的,什么是最高的,我应该将睡眠设置为,这样动画看起来就不会断断续续?它是否与目标设备刷新率或人眼有关?再次与步骤相同的问题。有没有一个网站可以给我可以复制的好数字。
我问的原因是为了最大限度地提高效率,因为它将在电池供电的设备上运行,因此更多的 CPU 时间 = 更少的电池。你会把它设置成什么?
谢谢。