快速业务通道

使用动画转换创建生动的用户体验 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
作用就 是为应用程序的合适界面建立 GUI。

就是这样!应用程序还需要一些代码处理其他任务,比如说建立 JFrame、在背景中绘出蓝色的斜线条,以及建立与组件和布局管理有关的 一些详细信息。但是应用程序的大部分实际逻辑,特别是与动画转换有关的代码都已经在上面列出了。

那么它是如何工作的呢?

使用动画转换创建生动的用户体验(4)

时间:2011-07-20 Chet Haase

工作原理

当您的代码调用 start() 方法时, ScreenTransition 将计算出转换容器中的组件的当前属性,比如说位置和大小。然后,应用程序将调 用 setupNextScreen() 方法,用于建立下一个界面的 GUI。最后,应用程序将计算出刚才建立的界面中的组件的属性。

注意,系统期望转换容器在适当的时候共享组件,而不是使用完全不同的组件表示相同的事物。因此,如果转换前后的两个界面都有一个提 交按钮,那么您可能希望在两种情况下都使用相同的 JButton 对象以获得期望的效果。否则,系统将认为前一个按钮消失而新的按钮出现取代 它。这并没有特别的技巧;如果希望在界面之间共享组件,那么应该使用在界面中使用相同的组件。

在这种情况下, ScreenTransition 将含有两个界面中的组件的所有信息:哪个组件在哪个界面中、组件的位置、组件的大小等等。因此, 我们便可以计算出两个界面中的组件将发生哪些变化。在界面之间发生变化的任何组件都将经历以下三种转换之一:

出现:第一个界面没有该组件,而第二个界面含有该组件。

消失:第一个界面含有该组件,而第二个界面没有该组件。

变化:两个界面都有该组件,但是组件将在两个界面之间出现改变。

然后, ScreenTransition 将为各个组件选择合适的转换效果:

出现:组件将在转换过程中淡入显示。

消失:组件将在转换过程中淡出显示。

变化:组件将在转换过程中移动或按比例缩放。

拥有所有这些信息之后, ScreenTransition 将开始运行动画,根据与各个组件相关的转换效果修改该组件的外观。

当转换完成时,控制将返回应用程序。同时,之前应用程序在 setupNextScreen() 中建立的 GUI 将处于活动状态。

自定义效果

应用程序将使用内建的转换效果处理一些常见的情况。通常,淡入淡出和移动/调整大小是组件的默认行为。但是,需要广泛使用动画转换 的应用程序可能更希望为特定的组件或在特定的情况下创建自定义效果。比如说,< 您可能希望组件以拉近或拉远的方式消失,或滑出界面 。

库中所编写的转换效果是可扩展的。因此,我们可以创建效果并在系统中注册该效果,然后在应用程序中插入自己的效果。这些效果与组件 和转换类型相关(出现、消失或变化)。当 ScreenTransition 搜索合适的效果应用于特定的组件和转换类型时,它将使用自定义的效果(如 果已注册)。

编写自定义效果其实相当简单:您只需重写两三个方法用于在转换过程中处理建立、消除和绘图之类的功能即可。有关如何编写自定义效果 的内容不在本文的讨论范围之内。但是,如果对此特性感兴趣,可以阅读 这本书的网站 上的“第 18 章:动画转换”,其中展示了自定义效 果的代码和实例。

小技巧

我们可以在动画转换中使用各种小技巧实现库所需的功能和性能。关于这些技巧的完整介绍,请参阅代码和图书获得详细信息。比如说,动 画转换库在转换完成前处理第二个界面的方式就很有趣。还有,动画转换库处理两个界面中的布局的方式也值得一看。同时,动画转换库还可 以在转换过程中快速显示组件的图像快照,从而支持更佳的性能和复杂动画。

未来的工作

动画转换库这个项目还在发展之中。我希望负责该项目的开发人员可以继续重新定义其 API 并增强其功能。与此同时,动画转换库的实用 性是毋庸质疑的。它应该让开发人员能够方便且无缝地连

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号