使用Camera类(6)

以下代码展示了如何使用Parameters请求Camera对象采用纵向方向而非横向方向。

public void surfaceCreated(SurfaceHolder holder) { 

          camera = Camera.open();

          try {

               Camera.Parameters parameters = camera.getParameters();

               if (this.getResources().getConfiguration().orientation !=

                    Configuration.ORIENTATION_LANDSCAPE) {

                    //这是一个众所周知但未文档化的特性

                    parameters.set("orientation", "portrait");

                    //对于Android 2.2及以上版本

                    //camera.setDisplayOrientation(90);

                    //对于Android 2.2及以上版本取消注释

                    //parameters.setRotation(90);

               } else {

                    //这是一个众所周知但未文档化的特性

                    parameters.set("orientation", "landscape");

                    //对于Android 2.2及以上版本

                    //camera.setDisplayOrientation(0);

                    //对于Android 2.2及以上版本取消注释

                    //parameters.setRotation(0);

               }

               camera.setParameters(parameters);

               camera.setPreviewDisplay(holder);

          } catch (IOException exception) { 

               camera.release();

               Log.v(LOGTAG,exception.getMessage());

          } 

          camera.startPreview();

}

读书导航