在上述代碼中,首先查詢Camera.Parameters對(duì)象,以通過getSupportedColorEffects方法查看所支持的效果列表。然后,使用迭代器循環(huán)查詢?cè)撔Ч斜?,并判斷其中是否有一個(gè)效果能夠匹配我們想要的效果,在當(dāng)前情況下是Camera.Parameters.EFFECT_SOLARIZE。如果該效果出現(xiàn)在列表中,那么它是獲得支持的,我們可以繼續(xù)操作,在Camera.Parameters對(duì)象上調(diào)用setColorEffect,并傳入EFFECT_SOLARIZE常量。圖2-3顯示了使用中的Camera. Parameters.EFFECT_SOLARIZE效果。
其他可能的效果也以常量的形式在Camera.Parameters類中列出。
● EFFECT_NONE
● EFFECT_MONO
● EFFECT_NEGATIVE
● EFFECT_SOLARIZE
● EFFECT_SEPIA
● EFFECT_POSTERIZE
● EFFECT_WHITEBOARD
● EFFECT_BLACKBOARD
● EFFECT_AQUA
還存在用于抗條帶(antibanding)、閃光燈模式(flash mode)、聚焦模式(focus mode),情景模式(scene mode)及白平衡(white balance)等參數(shù)的類似常量。
2. 更改攝像頭預(yù)覽大小
另一個(gè)在Camera.Parameters中特別有用的設(shè)置是能夠設(shè)置預(yù)覽大小。與其他的設(shè)置一樣,首先將查詢參數(shù)對(duì)象并獲得所支持的值。在獲得所支持的大小列表之后,就可以在設(shè)置之前通過遍歷它來確保所想要的大小是否獲得支持。
在這個(gè)示例中,我們不是指定一個(gè)精確的大小,而是選擇接近但不超過一對(duì)常量的大小。圖2-4展示了這個(gè)示例的輸出。
...
public static final int LARGEST_WIDTH = 200;
public static final int LARGEST_HEIGHT= 200;
...