Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid Camera preview reverse landscape Config
    text
    copied!<p>I want to set the camera preview in reverse landscape mode,When I am trying it by manifest orientation setting the preview shows as mirror view.I have an overlay over camera preview that's why I want reverse landscape mode,I am using android 4.0.</p> <pre><code> class Preview extends SurfaceView implements SurfaceHolder.Callback { // &lt;1&gt; SurfaceHolder mHolder; // &lt;2&gt; public Camera camera; // &lt;3&gt; Preview(Context context) { super(context); // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. mHolder = getHolder(); // &lt;4&gt; mHolder.addCallback(this); // &lt;5&gt; mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); // &lt;6&gt; } @Override public void surfaceCreated(SurfaceHolder holder) { try { if (camera != null) { camera.setPreviewDisplay(holder); } } catch (IOException exception) { Log.e("fd", "IOException caused by setPreviewDisplay()", exception); } } // Called when the holder is destroyed @Override public void surfaceDestroyed(SurfaceHolder holder) { // &lt;14&gt; //camera.setParameters(Camera.Parameters.FLASH_MODE_OFF); Parameters params = camera.getParameters(); params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); camera.setParameters(params); camera.stopPreview(); camera.release(); //camera = null; } // Called when holder has changed @Override public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { // &lt;15&gt; camera = Camera.open(); Parameters params = camera.getParameters(); List&lt;Size&gt; sizes = params.getSupportedPictureSizes(); Camera.Size size = sizes.get(0); params.setFocusMode(Camera.Parameters.FOCUS_MODE_MACRO); params.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO); params.setSceneMode(Camera.Parameters.SCENE_MODE_LANDSCAPE); params.setFlashMode(Camera.Parameters.FLASH_MODE_ON); params.setJpegThumbnailQuality(100); params.setExposureCompensation(0); params.setJpegQuality(100); // params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); /* * * Camera.Parameters parameters = camera.getParameters(); List&lt;Camera.Size&gt; previewSizes = parameters.getSupportedPreviewSizes(); // You need to choose the most appropriate previewSize for your app Camera.Size previewSize = // .... select one of previewSizes here parameters.setPreviewSize(previewSize.width, previewSize.height); camera.setParameters(parameters); camera.startPreview(); */ //int w=0,h=0; for(int i=0;i&lt;sizes.size();i++) { if(sizes.get(i).width &gt; size.width) size = sizes.get(i); } params.setPictureSize(size.width, size.height); //Toast.makeText(getContext(), size.width+"and"+size.height,Toast.LENGTH_SHORT).show(); camera.setParameters(params); /* if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) { params.set("orientation", "portrait"); camera.setDisplayOrientation(90); }*/ camera.startPreview(); try { camera.setPreviewDisplay(holder); } catch (IOException exception) { camera.release(); camera = null; } } </code></pre> <p>}</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload