正文

使用Camera類(7)

Android多媒體開發(fā)高級編程 作者:(美)艾佛瑞


上述代碼首先檢查設備配置(通過調(diào)用Context.getResources().getConfiguration())以查看當前的方向。如果方向不是橫向模式,那么它設置Camera.Parameters的“orientation”值為“portrait”。此外,調(diào)用Camera.Parameters的setRotation方法,并傳入90°的參數(shù)。該方法在API Level 5(2.0版)和更高版本上可用,它實際上并不執(zhí)行任何旋轉(zhuǎn);相反,它會告訴Camera對象在EXIF數(shù)據(jù)中指定該圖像應該旋轉(zhuǎn)90°顯示。如果沒有包含該信息,那么在其他應用程序中查看該圖像時,它可能會側(cè)面顯示。

注意:以上所示的通過使用Camera.Parameters修改Camera對象旋轉(zhuǎn)的方法用于Android 2.1和更早的版本。在Android 2.2中引入了Camera類的一個新方法setDisplayOrientation (int degrees)。該方法接受一個整數(shù),表示圖像應該旋轉(zhuǎn)的度數(shù)。有效的度數(shù)為0、90、180和270。

大多數(shù)可以或應該修改的參數(shù)都有與它們相關聯(lián)的特定方法。如同我們所看到的setRotation方法一樣,這些方法遵循Java的獲取器和設置器設計模式。例如,可以使用setFlashMode(Camera.Parameters.FLASH_MODE_AUTO)來設置Camera對象的閃光燈模式,同時可以使用getFlashMode()獲得它的當前值,而無須使用通用的Parameters.set方法。

從Android 2.0開始,存在一個可用于展示的有趣參數(shù),使用該參數(shù)可以修改顏色效果。對應的獲取器和設置器方法是getColorEffect和setColorEffect。同時還存在一個getSupportedColorEffects方法,它返回一個String對象的列表,對應特定設備上所支持的各種效果。事實上,這種方法對于所有具有獲取器和設置器方法的參數(shù)都存在,用于在使用某個功能之前確保所請求的功能是可用的。

Camera.Parameters parameters = camera.getParameters();

List<String> colorEffects = parameters.getSupportedColorEffects();

Iterator<String> cei = colorEffects.iterator();

while (cei.hasNext()) {

     String currentEffect = cei.next();

     Log.v("SNAPSHOT","Checking " + currentEffect);

     if (currentEffect.equals(Camera.Parameters.EFFECT_SOLARIZE)) {

          Log.v("SNAPSHOT","Using SOLARIZE");

          parameters.setColorEffect(Camera.Parameters.EFFECT_SOLARIZE);

          break;

     }

}

Log.v("SNAPSHOT","Using Effect:" + parameters.getColorEffect());

camera.setParameters(parameters);


上一章目錄下一章

Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號