渐入渐出效果是怎么实现的?
参见最新的新浪微博s60V5版本2.6
就是从一个界面跳转到另外一个界面是有那种停顿的效果
以前从来没见过这种效果
不知道是怎么做的??
请指教。。
多谢
[解决办法]
如果是慢慢的出来应该是半透明的方法实现的,就是先透明1-100%新界面就出来了。
[解决办法]
void CCellWallMainFrameListBox::RefreshSelectAd(CWindowGc& gc,CFbsBitmap *imgToBrighten) const
{
CFbsBitmap* iEmptyBitmap = new ( ELeave ) CFbsBitmap();
CleanupStack::PushL( iEmptyBitmap );
User::LeaveIfError( iEmptyBitmap->Create( imgToBrighten->SizeInPixels(), CEikonEnv::Static()->DefaultDisplayMode() ) );
CFbsBitmapDevice *iGD = CFbsBitmapDevice::NewL( iEmptyBitmap );
CleanupStack::PushL( iGD );
CFbsBitGc *iGC;
User::LeaveIfError( iGD->CreateContext( iGC ) );
iGC->SetPenStyle( CGraphicsContext::ENullPen );
TRgb aColor(255,255,128);
iGC->SetBrushColor( aColor );
iGC->SetBrushStyle( CGraphicsContext::ESolidBrush );
iGC->DrawRect( TRect(TPoint(0,0), iEmptyBitmap->SizeInPixels()) );
iGC->SetBrushStyle( CGraphicsContext::ENullBrush );
delete iGC;
CleanupStack::PopAndDestroy( iGD );
TRect rc(Rect());
TRect rect;
if ((50 == version) || (52 == version))
{
rect.SetRect(TPoint(rc.iTl.iX, rc.iBr.iY-45),TPoint(rc.iBr.iX, rc.iBr.iY));
}
else
{
rect.SetRect(TPoint(rc.iTl.iX, rc.iBr.iY-30),TPoint(rc.iBr.iX, rc.iBr.iY));
}
gc.DrawBitmapMasked(rect,imgToBrighten,TRect(TPoint(0,0),iEmptyBitmap->SizeInPixels()),iEmptyBitmap,EFalse);
CleanupStack::PopAndDestroy( iEmptyBitmap );
}
这段代码实现图片变淡,你可以通过调整TRgb aColor(255,255,128);这里的颜色值来观察图片的显示效果
[解决办法]
没有接口,这个都是自己实现的。
[解决办法]
配合定时器改变窗体透明度
[解决办法]
其实你比较一下android的就发现symbian上这个很卡,好像中间停顿一下,就感觉像中间插了一张图进来一样,不知道是机器的问题还是symbian客户端本身就做粗糙了