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

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

 2010-03-07 19:40:00 来源:WEB开发网   
核心提示:// new instanceiScreenBitmap = new (ELeave) CFbsBitmap;// pushCleanupStack: ushL(iScreenBitmap);// createUser: eaveIfError(iScreenBitmap->Create(iScreenDevic

// new instance

iScreenBitmap = new (ELeave) CFbsBitmap;

// push

CleanupStack: ushL(iScreenBitmap);

// create

User: eaveIfError(iScreenBitmap->Create(iScreenDevice->Siz eInPixels(),iScreenDevice->DisplayMode()));

// copy screen to bitmap

User: eaveIfError(iScreenDevice->CopyScreenToBitmap(iScre enBitmap));

// pop

CleanupStack: op(iScreenBitmap);

// Get the screen device

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

// new instance

iScreenBitmap = new (ELeave) CFbsBitmap;

// push

CleanupStack: ushL(iScreenBitmap);

// create

User: eaveIfError(iScreenBitmap->Create(iScreenDevice->Siz eInPixels(),iScreenDevice->DisplayMode()));

// copy screen to bitmap

User: eaveIfError(iScreenDevice->CopyScreenToBitmap(iScre enBitmap));

// pop

CleanupStack: op(iScreenBitmap);

回到原来的话题,我们可以想办法把控件绘制到位图上面,这样就可以获得截图了。

我当初想的方法就是使用双缓冲,先把控件绘制到位图上,也就是说我自己写一个可以调用的Draw方法,然而,系统控件确没有办法这样实现,例如编辑框等,因为,这些控件是系统去调用它们的Draw函数的。。所以这种方法不可行。

其实,CCoeControl类有提供一个SetGC()函数,可以设置绘图上下文,系统默认设置的是 CEikonEnv::Static()->SystemGc();这个gc当然是画到了屏幕上面,我们可以通过调用函数SetGC()设置一个指向一张位图的绘图上下文,这样,就可以获得前后界面的截图了

获得前后界面的截图

/**

* 将一个界面绘制到位图上

*/

void DrowScreenInBitmap(CCoeControl* iScreen,CFbsBitmap * iBitmap){

CleanupStack: ushL(iBitmap);

// 获得屏幕设备

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

//建立位图设备

上一页  1 2 3 4  下一页

Tags:Symbian 实现 基于

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