使用Camera类(5)

产生这种旋转的原因是Camera对象假定方向是水平或横向模式。修正旋转的最简单方法是使活动以横向模式显示。为此,可以在活动的onCreate方法中添加以下代码。

@Override 

public void onCreate(Bundle savedInstanceState) 

{

     super.onCreate(savedInstanceState);

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

现在摄像头预览将会正确地显示,如图2-2所示。但是,我们的应用程序现在被限定在横向模式。

前面提及,Camera类有一个嵌套的Camera.Parameters类。这个类有一系列重要的属性或设置,可以用来改变Camera对象运作的方式。其中一个现在能够帮助我们的参数可用来处理在预览时遇到的旋转/横向问题。

可以对Camera对象使用的Parameters做如下修改:

Camera.Parameters parameters = camera.getParameters();

parameters.set("some parameter", "some value");

// 或者

parameters.set("some parameter", some_int);

camera.setParameters(parameters);

此处有两个不同的通用Parameters.set方法。第一个方法的参数名称和值都采用字符串,而第二个方法的参数名称为字符串,但是值为整数。

应该在创建Camera对象和指定它的预览Surface之后立即在surfaceCreated方法中设置Parameters。

读书导航