Java控制动画 - 如何使其平滑有效
-
24-10-2019 - |
题
我正在对Java中的一些自定义控件进行编程,并使用动画进行过渡/褪色/动作。
我这样做的方式是,我正在启动一个新线程,并对变量进行调整,并使用 paint()
方法。
例子:
现在,我的问题是,例如,我正在实现淡入淡出的问题。我要做的就是通过 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时间=更少的电池。您会设置什么?
谢谢。
解决方案
您要寻找的技术称为“双重缓冲”。
遗憾的是,我没有时间向您展示一个例子,但这就是您需要研究的内容。
其他提示
我个人建议调查 三叉戟动画库, ,即使您在移动上下文中使用它(似乎是从您的问题来看),库似乎只有100k。
我不确定它适合您的情况,但是值得一试。
在一个挑剔的地方... byte
Java中的数据类型并非未签名,因此其范围实际上是-128至127。
不隶属于 StackOverflow