在上述代碼中,首先查詢(xún)Camera.Parameters對(duì)象,以通過(guò)getSupportedColorEffects方法查看所支持的效果列表。然后,使用迭代器循環(huán)查詢(xú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類(lèi)中列出。
● 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ù)的類(lèi)似常量。
2. 更改攝像頭預(yù)覽大小
另一個(gè)在Camera.Parameters中特別有用的設(shè)置是能夠設(shè)置預(yù)覽大小。與其他的設(shè)置一樣,首先將查詢(xún)參數(shù)對(duì)象并獲得所支持的值。在獲得所支持的大小列表之后,就可以在設(shè)置之前通過(guò)遍歷它來(lái)確保所想要的大小是否獲得支持。
在這個(gè)示例中,我們不是指定一個(gè)精確的大小,而是選擇接近但不超過(guò)一對(duì)常量的大小。圖2-4展示了這個(gè)示例的輸出。
...
public static final int LARGEST_WIDTH = 200;
public static final int LARGEST_HEIGHT= 200;
...