【问题标题】:How to animate CN1 Slider progress on load如何在加载时为 CN1 滑块进度设置动画
【发布时间】:2019-08-18 12:31:50
【问题描述】:

请您帮我研究一下如何构建一个 Codenameone Slider 控件,该控件在初始呈现时简单地对其 Progress 进行动画处理,以便用户在几秒钟内看到进度条增加。

我的实际实现是使用 Chen 很棒的 ArcProgress 控件来显示某些东西已经增长了多远,因此当控件渲染时,弧线会在几秒钟内填充到其 70% 左右的水平。到目前为止,我已经构建并工作了上面的图像。

非常感谢

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    您只需要调用setValue 来指示当前位置。我猜您看不到进度,因为您正在 EDT 上进行进度,从而阻止了绘画。

    所有绘制操作都在 EDT 线程上执行,因此如果您的加载/处理代码在该线程(主线程)上运行,您实际上会阻止绘制操作。 EDT section of the developer guide 对此进行了长时间的讨论。

    【讨论】:

    • 好点。我阻塞了线程。但我并不完全在那里 - 只需将滑块值放入另一个线程即可,但只需一步即可呈现该值(零到 70%)。我在几秒钟内完成了 Slider 值从零到 70% 的流畅动画之后。从技术上讲,我使用的不是 Slider 对象,而是 Graphics 对象,根据 Chen 的示例,我使用 GeneralPath.arc() 进行 drawShape()。如果无法做到这一点,那么这对我来说不是一个障碍,如果直截了当,那就太好了。谢谢
    • 情况正好相反。您需要在 EDT 上更新 UI(进度),但在 EDT 之外执行所有其他操作(在单独的线程中),否则不会更新。此外,如果您在不产生绘图的情况下占用过多 CPU,则不会发生,因为即使在多核场景中 CPU 也不是出色的多任务处理程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    相关资源
    最近更新 更多