使用Camera类(8)

在上述代码中,首先查询Camera.Parameters对象,以通过getSupportedColorEffects方法查看所支持的效果列表。然后,使用迭代器循环查询该效果列表,并判断其中是否有一个效果能够匹配我们想要的效果,在当前情况下是Camera.Parameters.EFFECT_SOLARIZE。如果该效果出现在列表中,那么它是获得支持的,我们可以继续操作,在Camera.Parameters对象上调用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)等参数的类似常量。

2. 更改摄像头预览大小

另一个在Camera.Parameters中特别有用的设置是能够设置预览大小。与其他的设置一样,首先将查询参数对象并获得所支持的值。在获得所支持的大小列表之后,就可以在设置之前通过遍历它来确保所想要的大小是否获得支持。

在这个示例中,我们不是指定一个精确的大小,而是选择接近但不超过一对常量的大小。图2-4展示了这个示例的输出。

...

public static final int LARGEST_WIDTH = 200;

public static final int LARGEST_HEIGHT= 200;

...

读书导航