⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitmapscalerobserver.cpp

📁 实现了图像的切换效果,包括飞入飞出,雨滴效果,水平交错,百页窗效果,是symbian学习的好例子.
💻 CPP
字号:
#include "BitmapScalerObserver.h"

CMyBitmapScaler* CMyBitmapScaler::NewL(CFbsBitmap* bitmap,
    MBitmapScalerObserver* aObserver )
    {
    CMyBitmapScaler* self = 
        new(ELeave) CMyBitmapScaler( aObserver );
    CleanupStack::PushL( self );
    self->ConstructL(bitmap);
    CleanupStack::Pop(self);
    return self; 
    }
 
CMyBitmapScaler::CMyBitmapScaler( 
    MBitmapScalerObserver* aObserver ) : 
    CActive( EPriorityStandard ), iObserver( aObserver )
    {
    }
 
void CMyBitmapScaler::ConstructL(CFbsBitmap* bitmap)
    {
	iBitmap = bitmap;
    iScaler = CBitmapScaler::NewL();
    CActiveScheduler::Add(this);
    }
 
CMyBitmapScaler::~CMyBitmapScaler()
    {
    Cancel();
    //delete iBitmap;
    delete iScaler;
    }
 
void CMyBitmapScaler::DoCancel()
    {
    iScaler->Cancel();
    }
 
void CMyBitmapScaler::RunL()
    {
    iObserver->Completed(iStatus.Int());
    }
 
TInt CMyBitmapScaler::RunError(TInt aError)   
    {
    iObserver->Completed(aError);
    return KErrNone;
    }
 
void CMyBitmapScaler::Scale(TInt aPercent)
    {
    if (IsActive())
        {
        return;
        }
    
    TReal32 multiplier; 
    multiplier = aPercent/(TReal32)100.0;
 
    TInt newWidth = (TInt)(iBitmap->SizeInPixels().iWidth * multiplier);
    TInt newHeight = (TInt)(iBitmap->SizeInPixels().iHeight * multiplier);
        
    // The maintain aspect ratio is by default set to true
    iScaler->Scale( &iStatus, *iBitmap, TSize(newWidth,newHeight) );
 
    SetActive();
    }
    
CFbsBitmap* CMyBitmapScaler::GetBitmap()
    {
    return iBitmap;
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -