×
Namespaces

Variants
Actions

Utilizar bitmaps em suas aplicações

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Artigo
Criado por cabezonxdg em Cabezonxdg
Última alteração feita por hamishwillee em 09 Dec 2011

Para utilizar bitmaps em suas aplicações você terá que fazer uso da classe CFbsBitmap, mais informações sobre essa classe podem ser encontradas aqui:

CFbsBitmap Class

Como o Symbian OS não suporta o uso direto de arquivos bitmap será preciso convertê-los para um formato reconhecido por ele. Detalhes sobre essa conversão podem ser achados em:

Convertendo bitmaps para utilizar no symbian

Após copiar o arquivo .mbm para a pasta ..\Epoc32\winscw\c\system\Apps e o .mbg para a pasta ..\Epoc32\include criaremos um novo projeto no Symbian.

Iremos criar um ponteiro para a classe CFbBitmap para poder manipular bitmaps e criaremos uma instância da classe TRect. Esse retângulo será utilizado para mostrar o bitmap.

Contents

ProjetoBitmapsAppView.h

class CProjetoBitmapsAppView : public CCoeControl
{
//Restante do códio da classe
 
/* Elementos privados adicionados a classe */
 
private: // Funcoes da classe
CFbsBitmap* iBitmap;
TRect iRetangulo;
 
 
};

Para carregar uma imagem, antes é preciso incluir o respectivo arquivo .mbg no cabeçalho do source, ele contêm os ids necessários para acessar as imagens individualmente. Também será incluido o cabeçalho da função CFbsBitmap.

ProjetoBitmapsAppView.cpp

//Arquivo que contêm os ids das imagens
#include <ARQUIVO.mbg>
//Cabeçalho da função CFbsBitmap
#include <fbs.h>

Para carregar uma imagem iremos utilizar então o arquivo .mbm e o id da imagem definida no .mbg , para isso utilizaremos a função Load() da classe CFbsBitmap, sua declaração é:

TInt Load(const TDesC& aFileName,TInt32 aId=0,TBool aShareIfLoaded=ETrue);

const TDesC& aFileName - O arquivo .mbm onde se encontram os multi-bitmaps TInt32 aId=0 - ID da imagem , contido no arquivo .mbg

Criaremos uma string que armazenará o caminho para o arquivo .mbm , para ele poder se carregado pela função Load(), utilizaremos um Literário para isso:

ProjetoBitmapsAppView.cpp

_LIT(KDirImagem,"\\system\\apps\\ARQUIVO.mbm");

OK, agora iremos fazer a construção do iBitmap e do Retângulo, isso será feito dentro do ConstructL e não no construtor normal do programa.

ProjetoBitmapsAppView.cpp

void CProjetoBitmapsAppView::ConstructL( const TRect& aRect )
{
//Alocação de memória p/ iBitmap
iBitmap = new (ELeave) CFbsBitmap();
 
/* Como a declaração acima pode gerar um leave, ela é colocada na
pilha de limpeza */

CleanupStack::PushL(iBitmap);
 
//Carrega uma imagem
iBitmap->Load(KDirBitmap,EMbmArquivoSonic);
 
/* Após executar as funções que podem gerar um leave,
liberaremos da pilha o iBitmap */

CleanupStack::Pop();
 
//Declaração do retângulo
iRetangulo = TRect(TPoint(0,0), TSize(100,140));
 
//Restante do código original
}

Como o programa ao fechar não deleta os elementos criado , essa função deve ser feita pelo programador e com muito cuidado. Caso a função abaixo não tivesse sido implementada, na hora de fechar o programa seria gerado um Panic Code.

ProjetoBitmapsAppView.cpp

CProjetoBitmapsAppView::~CProjetoBitmapsAppView()
{
if(iBitmap)
delete iBitmap;
}

Na função Draw iremos fazer as implementações necessárias para exibir a imagem na tela. O Bitmap será exibido em um retângulo. Primeiro iremos exibir o retângulo e então exibiremos o bitmap dentro do retângulo. Serão usada as funções:

virtual void DrawRect(const TRect& aRect)=0;

const TRect& aRect - É o retângulo que será exibido na tela

virtual void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource)=0;

const TRect& aDestRect - Retângulo onde o bitmap será exibido
const CFbsBitmap* aSource - Bitmap a ser exibido

ProjetoBitmapsAppView.cpp

void CProjetoBitmapsAppView::Draw( const TRect& /*aRect*/ ) const
{
//Retante do código
 
gc.DrawRect( As );
 
gc.DrawBitmap(As,iBitmap);
}

Adicionando a biblioteca fbscli ao projeto

Antes de compilar o seu projeto, será necessário adicionar a biblioteca fbscli.lib ao seu projeto, ela é responsável pela função CFbsBitmap. Para adicionar bibliotecas ao seu projeto, dê uma olhada em:

Adicionando bibliotecas ao seu projeto

This page was last modified on 9 December 2011, at 04:53.
46 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×