成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Symbian學習筆記(4)——在GUI應用中使用圖像

系統
學習一下如何修改GUI程序中的圖標與如何加載圖像。
學習一下如何修改GUI程序中的圖標與如何加載圖像。

  與2nd.不同的是,3rd.支持svg格式的可縮放圖標(最大好處在于一個圖標搞定,以前用bmp時為了應用程序的菜單圖標得要做四個小圖標)。而且,現在有了一種新的圖像打包格式mif(這名字咋跟BREW中那個MIF一樣啊)。雖然還支持以前的MBM方式但是不建議使用了。

  要在應用程序中增加圖像圖標資源,過程如下:

  第一步,先將要加入的圖像放在工程的/gfx目錄下,如:

  qgn_menu_DemoUI.svg

  splash2.bmp

 

  前面一個就是應用程序圖標(可以修改它)。

  第二步,修改/group目錄下的Icons_scalable_dc.mk文件,不知道為什么,工程向導生成的這個文件相當不完整,郁悶。


TARGETDIR=$(ZDIR)\resource\apps
ICONTARGETFILENAME=$(TARGETDIR)\DemoUI_0xE8656D58.mif

HEADERDIR=C:\Symbian\workspace\DemoUI\inc
HEADERFILENAME=$(HEADERDIR)\DemoUI.mbg

 

  上面的targetdir是原有的,下面的headerdir是我加上的,因為我需要一個mbg文件(以前舊方式也有這個頭文件)。

RESOURCE :   
    mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) \
        /c32,8 $(ICONDIR)\qgn_menu_DemoUI.svg \
        /c24 $(ICONDIR)\splash2.bmp
      

RELEASABLES :
    @echo $(HEADERFILENAME)&& \
    @echo $(ICONTARGETFILENAME)

 

  主要是那個mifconv的參數,加上/h生成mbg頭文件,注意這里的/c32,8 表示我們只提供一個svg文件但是將它的8bit圖像作為它的mask,比

  原來的方式簡單多了,當然你也可以新做一個圖像作為mask。

  [補充@2008-03-14]

  昨天這個例子只在模擬器上成功了,真機失敗,無法加載bmp圖像。

  后來出編譯時的控制臺輸出發現,它只把svg圖片放在mif文件中,而bmp圖片仍會放入一個同名的mbm文件中。所以我們還得修改pkg文件,讓mbm也打包進sisx中:

"$(EPOCROOT)Epoc32\data\z\resource\apps\DemoUI_0xE8656D58.mif" -"!:\resource\apps\DemoUI_0xE8656D58.mif"
"$(EPOCROOT)Epoc32\data\z\resource\apps\DemoUI_0xE8656D58.mbm" -"!:\resource\apps\DemoUI_0xE8656D58.mbm"

 

  而代碼中則無所謂了,因為AknIconUtils::CreateIconL()會自動判斷是去mif還是mbm中讀取圖像資源。

  第三步,先把上面的改完后,編譯一下,就能得到mif文件和mbg文件了。

  下面在container中顯示這個圖像splash2.bmp,先修改.h文件,增加兩個CFbsBitmap。

  private:

        CFbsBitmap*     iBkImage;
        CFbsBitmap*     iBkImageMask;
 

 

  修改cpp文件,如此加載和顯示: 

_LIT(KMbmFileName,"\resource\apps\DemoUI_0xE8656D58.mif");
const TInt KMyIconMaxWidth(100);
const TInt KMyIconMaxHeight(100);

...

void CDemoUIAppView::ConstructL( const TRect& aRect )
...{

...

TFileName fullname(KMbmFileName);
CompleteWithAppPath(fullname);
   
iBkImage=AknIconUtils::CreateIconL(fullname,EMbmDemouiSplash);

...
}

...

void CDemoUIAppView::Draw( const TRect& aRect ) const
...{
    CWindowGc& gc = SystemGc();
    TRect drawRect( Rect());
    gc.Clear( drawRect );
   
    gc.BitBlt(TPoint(0,0),iBkImage);

...
}

  其實這里與舊方式差不多了,但是原來的那個iBkImage->Load()方法已經不管用了,只能用AknIconUtils提供的這個方法CreateIconL。

  另外,如果是加載SVG呢,其實也一樣的,如果同時加載mask呢?也一樣。例如:

 

AknIconUtils::CreateIconL(iBkImage, iBkImageMask, fullname, EMbmDemouiQgn_app_demoui, EMbmDemouiQgn_menu_demoui_mask);
AknIconUtils::SetSize(iBkImage, TSize(KMyIconMaxWidth, KMyIconMaxHeight));
AknIconUtils::SetSize(iBkImageMask, TSize(KMyIconMaxWidth, KMyIconMaxHeight));

  顯示時就這樣:

TPoint point = TPoint(aRect.Center().iX - (KMyIconMaxWidth/2),aRect.Center().iY - (KMyIconMaxHeight/2));
gc.BitBltMasked(point, iBkImage, aRect, iBkImageMask, EFalse);

  今天找了找SVG的編輯器,覺得那個RealDraw還行。

【編輯推薦】

  1. Symbian每6個月發布一款新開源操作系統
  2. 微軟建WindowsMarketplace 完善智能機平臺
  3. 大力模仿Android 傳微軟WM6.5可裝插件
責任編輯:龐桂玉 來源: it168
相關推薦

2009-04-12 08:55:18

Symbian諾基亞移動OS

2009-04-12 08:59:05

Symbian諾基亞移動OS

2009-04-12 09:00:08

Symbian諾基亞移動OS

2009-04-12 09:01:05

Symbian諾基亞移動OS

2009-04-12 09:02:32

Symbian諾基亞移動OS

2009-04-12 09:06:00

Symbian諾基亞移動OS

2009-04-12 08:48:47

Symbian諾基亞移動OS

2009-04-12 09:03:50

Symbian諾基亞移動OS

2009-04-12 08:57:50

Symbian諾基亞移動OS

2009-04-12 08:45:32

Symbian諾基亞移動OS

2022-12-21 16:53:59

LinuxConverterGUI

2009-04-12 08:36:09

Symbian諾基亞移動OS

2009-04-12 08:51:50

Symbian諾基亞移動OS

2010-03-17 11:15:44

Python學習筆記

2009-04-12 09:07:17

Symbian諾基亞移動OS

2021-02-25 11:19:37

谷歌Android開發者

2023-12-22 09:11:45

AndroidNFC移動開發

2010-03-17 10:42:32

Python學習筆記

2010-05-23 11:13:53

Widget開發

2009-09-22 12:17:59

ibmdwLotus
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久人人网 | 欧美福利在线 | 日韩精品久久 | 精品二 | 国产一区二区观看 | 黄色成人免费在线观看 | 精品一区二区三区在线观看国产 | 欧洲一区视频 | 91一区二区三区 | 日日操操 | 亚洲天堂一区 | 欧美一区二区三区四区在线 | 日韩精品中文字幕一区二区三区 | 麻豆hd| 91视频在线观看 | 中文字幕视频三区 | 亚洲天堂精品一区 | 久久精品一区二区三区四区 | 欧美亚洲日本 | 福利久久 | 欧美精品在线视频 | 天天干天天玩天天操 | 国产精品一区一区三区 | 成人久久久久久久久 | 国产精品视频yy9299一区 | 中文在线一区 | 99爱在线| 91在线观看 | 国产精品久久久久9999鸭 | 久久久久久91 | 久久久免费少妇高潮毛片 | 久久99精品久久久 | 91麻豆精品国产91久久久更新资源速度超快 | 黑人巨大精品欧美一区二区一视频 | 91精品国产91久久久久久最新 | 在线观看不卡av | 中文av字幕 | 成人在线中文字幕 | 欧美在线视频不卡 | 日本一道本| 国精日本亚洲欧州国产中文久久 |