BlackBerry應用開發(fā)指南 UI設計之圖片操作
本文為BlackBerry應用開發(fā)專題UI設計的文章,我們將介紹《BlackBerry應用開發(fā)指南》——UI設計篇:圖片操作,包括:使用未處理(raw)的圖像數(shù)據(jù)和使用編碼的圖像。
使用未處理(raw)的圖像數(shù)據(jù)
為了從圖像的特定區(qū)域獲取未處理的圖像數(shù)據(jù),并存儲在一個整數(shù)數(shù)組中,調(diào)用Bitmap.getARGB().應用程序然后可以直接對未處理的圖像數(shù)據(jù)進行操作。
(注:getARGB()方法只在彩屏的 BlackBerry 設備適用。)
設備模擬器顯示圖像數(shù)據(jù)時每一個象素作為一個整數(shù),每個象素中,每個字符(不透明)有8 個位,紅,綠以及藍的值。顏色由 8 個整數(shù)以 0xAARRGGBB 的形式組成。
獲取圖像數(shù)據(jù)
初始化一個整型數(shù)組,然后調(diào)用 Bitmap.getARGB()將新的或預定義的位圖的未處理的圖像數(shù)據(jù)存儲到整型數(shù)組中。
比較 2個圖像
調(diào)用 Bitmap.equals()決定 2 個位圖是否相同。
#p#
使用編碼的圖像
net.rim.device.api.system.EncodedImage 類封裝了各種格式的編碼圖像。BlackBerry 設備支持下面的圖像格式:.gif,.png,.wbmp,以及.jpeg.只有彩屏的 BlackBerry 設備才支持.jpeg 圖像。
(注:JPEGEncodedImage 類需要一個不可用的簽名。
使用 EncodedImage 的子類,PNGEncodedImage 和 WBMPEncodedImage,來分別訪問.png和.wbmp 圖像的特定屬性。例如,PNGEncodedImage 提供方法來獲得圖像的色彩深度(BitDepth), alpha 通道(alpha channel① ),以及顏色類型。
在 BlackBerry IDE 中,一個應用程序能夠直接訪問加到工程或者依賴的類庫工程中的圖像。
訪問一個圖像
在 BlackBerry IDE 中,保存一個圖像到你的項目文件夾或者子文件夾,然后增加圖像到工程中。調(diào)用 Class.getResourceAsStream()獲取圖像作為一個字節(jié)的輸入流。
解碼一個圖像
為了編碼一個圖像,調(diào)用 EncodedImage.createEncodedImage()。這個方法使用字節(jié)數(shù)組里的未處理的圖像數(shù)據(jù)來創(chuàng)建了一個 EncodedImage 的實例。如果作為參數(shù)的字節(jié)數(shù)組布包漢一個可以識別的圖像格式,它將拋出一個 IllegalArgumentException 異常。
注:缺省地,BlackBerry 設備軟件監(jiān)測基于圖像格式的 MIME 類型的圖像。如果正確的 MIME 類型未能自動的監(jiān)測到,使用下面EncodedImage.createEncodedImage()的形式指定一個特定的 MIME 類型:
- createEncodedImage(byte [] data, createEncodedImage(byte [] data, int offset, int
- length, String mimeType)
如果圖像格式預指定的 MIME 類型不匹配,這個方法拋出一個 IllegalArgumentException異常。支持的 MIME 類型包括:image/gif, image/png, image/vnd.wap.wbmp, 以及 image/jpeg.
顯示一個編碼的圖像
調(diào)用 BitmapField.setImage()指定一個編碼的圖像到一個 BitmapField,然后調(diào)用 add()將BitmaoField 加入到屏幕中。
設置解碼模式
調(diào)用 EncodedImage.setDecodeMode()來設置圖像的解碼模式。提供下面模式之一作為方法的一個參數(shù):
設置縮放因子(scaling factor )
當解碼時,為了設置用在縮減一個圖像的整數(shù)因子,調(diào)用 EncodedImage.setScale()。圖像通過作為 scale 參數(shù)的整型來縮放。例如,如果你設置縮放因子為 2,圖像將縮小到原大小的 50%。
代碼實例
ImageDemo.java 實例從一個包含在項目中的圖像獲得未處理的數(shù)據(jù),然后使用這個未處理的數(shù)據(jù)來重新創(chuàng)建一個 EncodedImage。
【編輯推薦】