平滑(动画)GUI过渡

时间:2009-04-28 21:31:34

标签: user-interface language-agnostic graphics animation

有时您可以看到为调整大小,展开和显示图形控件而显示的平滑动画过渡。不只是一些尾巴摇摆的文件搜索狗,而是小部件配置的动画在结构上和/或几何上改变它的状态。

我没有太多使用Windows Vista,但是确实知道在XP上你可以为下拉菜单设置这种效果。其他系统/图形shell怎么样?它是否在系统级自动实现,以便应用程序代码(甚至图形框架)根本不处理它?<​​/ p>

我知道Qt有一组动画类。其他gui框架怎么样(wxwidgets,swing,gtk,..你的名字)?由于某些框架依赖于原生API,不能与系统动画发生冲突( - &gt; prev paragraph)吗?

对于控件的动画过渡,在微观设计方面,设计的最佳实践是什么?可以使用什么样的视觉设计?它们如何与布局/分级器和自动调整大小一起运行?性能怎么样?

这是一个广泛的问题,我几乎不希望通过一个答案解决它。但是,任何有助于理解一般情况的线索都将受到高度赞赏。

7 个答案:

答案 0 :(得分:3)

一个“最佳实践”:确保动画不会妨碍接受输入。

例如,如果您正在淡入菜单,请在淡入淡出之前激活键盘快捷键上下文,以便J. Random Poweruser不必坐200码(或更长时间)在点击快捷键之前,某些东西在磁盘访问或类似物上停顿。与接受点击等相同

答案 1 :(得分:2)

有几个Java动画框架:

从我所知道的(使用第二个),他们处理时间方面,并让客户端处理实际的动画部分。

答案 2 :(得分:2)

我为这些类型的UI动画创建了一个C#库,名为Transitions: http://code.google.com/p/dot-net-transitions/

它可以为表单或控件的大多数UI属性设置动画。它适用于.NET 2或更高版本。

答案 3 :(得分:1)

Windows 7引入了一个名为Windows Animation的基于C ++ / COM的动画框架。 http://channel9.msdn.com/posts/yochay/Windows-Scenic-Animation-Overview/

尚未宣布是否会为Vista重新分发。

它处理时间,状态管理,有一个小的过渡曲线库,并有一些很酷的功能,如压缩和速度匹配,以处理碰撞动画。

它实际上并没有在屏幕上绘画;这取决于应用程序,它可以使用GDI或Direct 2d。

在Windows中,没有系统范围的动画集作为主题的一部分使用,并且没有最佳实践。我建议为您自己的应用程序开发一套原则,并查看现有的应用程序以获得想法。 iPhone和Zune桌面软件都是软件广泛而一致地使用动画的好例子。

答案 4 :(得分:1)

我建议阅读Romain Guy和Chet Hasse的Filthy Rich Clients。实际上,其中一个答案中提到的时序框架最初是由Chet Hasse编写的,并且是本书的重要部分。它侧重于Java,但相同的原则可以应用于所有语言。对于其他语言的动画,JavaFX在语言中内置了这些类型的动画。 Flare这是一个Flex库,内置了一些用于图形和信息可视化的很酷的动画过渡。 JQuery和YUI也有很好的动画功能。

答案 5 :(得分:0)

我们使用Infragistics为所有UI铃声提供口哨和东西。有一些缺点 - 需要一段时间才能加快控制速度。但它们提供了出色的示例应用程序,最终您可以将一些复杂的用户界面组合在一起,而无需过多的自定义控制工作。

答案 6 :(得分:0)

WPF(.NET 3.0?)和Silverlight(v1.0 +)能够渲染动画。您设置了触发器,然后开始播放帧。