WEB开发网
开发学院手机开发Symbian 开发 Symbian 实现基于传统架构场景切换动画 阅读

Symbian 实现基于传统架构场景切换动画

 2010-03-07 19:40:00 来源:WEB开发网   
核心提示:简介在symbian界面开发中,我还是比较喜欢实用基于传统结构(Constructing views in traditional architecture)设计界面,Symbian 实现基于传统架构场景切换动画,虽然这样做比较繁琐,界面基本上是自己画出来的,ps,,但是,这样做的灵活性很高

简介

在symbian界面开发中,我还是比较喜欢实用基于传统结构(Constructing views in traditional architecture)设计界面,虽然这样做比较繁琐,界面基本上是自己画出来的,但是,这样做的灵活性很高,基本可以实现任何自己想要的界面。一般每一个界面都是一个CCoeControl的对象,通过MakeVisible(TBool)来设置其可见或者隐藏。这样切换当然是很生硬的,如果能在切换的时候加一个转换效果,自然好多了,现在很多软件都有场景切换动画的。可以是滑入滑出,淡入淡出等等!

在基于传统ui架构的模式下,如何切换显示界面

一般切换界面的方法为设置当前界面MakeVisible(EFalse),下一界面MakeVisible(ETRue),还要管理堆栈,以便于响应键盘按键:

CCoeControl * iControl1;

CCoeControl * iControl2;

// Construct

..

iControl2->MakeVisible(ETrue);// show

iControl1->MakeVisible(EFalse);// hide

CAppUI * appui = CEikonEnv::Static()->EikAppUi();

// 注意,这里的CAppUI是你程序的UI类

appui->AddToStackL(iControl2);// 添加到栈中

appui->RemoveFromStack(iControl1);// 移除出栈

..

CCoeControl * iControl1;

CCoeControl * iControl2;

// Construct

..

iControl2->MakeVisible(ETrue);// show

iControl1->MakeVisible(EFalse);// hide

CAppUI * appui = CEikonEnv::Static()->EikAppUi();

// 注意,这里的CAppUI是你程序的UI类

appui->AddToStackL(iControl2);// 添加到栈中

appui->RemoveFromStack(iControl1);// 移除出栈

..

实现场景切换动画的原理

实现场景切换动画,当然需要前后界面的截图,在这两张图上面做文章就可以了,然而,要如何获得这两张图确是个问题,前面这个界面的截图还可以通话获屏幕截图的方法来实现,然而,第二个界面呢?还没有画到界面上的,使用前面的方法是做不到的,我们不能先画到屏幕上,再来截图的。

ps。。既然说到获得屏幕截图,就写一下获得屏幕截图的方法吧:

// Get the screen device

CWsScreenDevice * iScreenDevice = CCoeEnv::Static()->ScreenDevice();

1 2 3 4  下一页

Tags:Symbian 实现 基于

编辑录入:coldstar [复制链接] [打 印]
赞助商链接