title: OpenCV4Android 3.1.0 JavaCameraView FullScreen and Portrait
body: <p>I am very new to OpenCV, trying it for the first time. I ran the Tutorial3<a href="https://github.com/Itseez/opencv/tree/2.4/samples/android/tutorial-3-cameracontrol" rel="nofollow">CameraControl</a>, camera preview was fine portrait and full screen, when I integrate the same code in my project, I somehow get the camera in landscape mode and its not full screen. I get it this question has been asked quite a few times, but none of the solutions were helpful. I want my application to open up org.opencv.JavaCameraView in full screen portrait mode. Could someone please help me?</p>
  
  <p>Below is the activity:</p>
  
  <pre><code>    @Override
      public void onPause()
      {
          super.onPause();
          if (mOpenCvCameraView != null)
              mOpenCvCameraView.disableView();
      }
  
      @Override
      public void onResume()
      {
          super.onResume();
          if (!OpenCVLoader.initDebug()) {
              Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
      //        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
          } else {
              Log.d(TAG, "OpenCV library found inside package. Using it!");
              mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
          }
      }
  
      public void onDestroy() {
          super.onDestroy();
          if (mOpenCvCameraView != null)
              mOpenCvCameraView.disableView();
      }
  
      public void onCameraViewStarted(int width, int height) {
      }
  
      public void onCameraViewStopped() {
      }
  
      public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
          return inputFrame.rgba();
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          List&lt;String&gt; effects = mOpenCvCameraView.getEffectList();
  
          if (effects == null) {
              Log.e(TAG, "Color effects are not supported by device!");
              return true;
          }
  
          mColorEffectsMenu = menu.addSubMenu("Color Effect");
          mEffectMenuItems = new MenuItem[effects.size()];
  
          int idx = 0;
          ListIterator&lt;String&gt; effectItr = effects.listIterator();
          while(effectItr.hasNext()) {
             String element = effectItr.next();
             mEffectMenuItems[idx] = mColorEffectsMenu.add(1, idx, Menu.NONE, element);
             idx++;
          }
  
          mResolutionMenu = menu.addSubMenu("Resolution");
          mResolutionList = mOpenCvCameraView.getResolutionList();
          mResolutionMenuItems = new MenuItem[mResolutionList.size()];
  
          ListIterator&lt;Size&gt; resolutionItr = mResolutionList.listIterator();
          idx = 0;
          while(resolutionItr.hasNext()) {
              Size element = resolutionItr.next();
              mResolutionMenuItems[idx] = mResolutionMenu.add(2, idx, Menu.NONE,
                      Integer.valueOf(element.width).toString() + "x" + Integer.valueOf(element.height).toString());
              idx++;
           }
  
          return true;
      }
  
      public boolean onOptionsItemSelected(MenuItem item) {
          Log.i(TAG, "called onOptionsItemSelected; selected item: " + item);
          if (item.getGroupId() == 1)
          {
              mOpenCvCameraView.setEffect((String) item.getTitle());
              Toast.makeText(this, mOpenCvCameraView.getEffect(), Toast.LENGTH_SHORT).show();
          }
          else if (item.getGroupId() == 2)
          {
              int id = item.getItemId();
              Size resolution = mResolutionList.get(id);
              mOpenCvCameraView.setResolution(resolution);
              resolution = mOpenCvCameraView.getResolution();
              String caption = Integer.valueOf(resolution.width).toString() + "x" + Integer.valueOf(resolution.height).toString();
              Toast.makeText(this, caption, Toast.LENGTH_SHORT).show();
          }
  
          return true;
      }
  //
  //    @SuppressLint("SimpleDateFormat")
  //    @Override
  //    public boolean onTouch(View v, MotionEvent event) {
  //        Log.i(TAG,"onTouch event");
  //        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
  //        String currentDateandTime = sdf.format(new Date());
  //        String fileName = Environment.getExternalStorageDirectory().getPath() +
  //                               "/sample_picture_" + currentDateandTime + ".jpg";
  //        mOpenCvCameraView.takePicture(fileName);
  //        Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show();
  //        return false;
  //    }
  
      @Override
      public void onClick(View v) {
          Log.i(TAG,"onTouch event");
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
          String currentDateandTime = sdf.format(new Date());
          String fileName = Environment.getExternalStorageDirectory().getPath() +
                  "/sample_picture_" + currentDateandTime + ".jpg";
          mOpenCvCameraView.takePicture(fileName);
          Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show();
      }
  }
  </code></pre>
  
  <p>This is the custom view that extends org.opencv.JavaCameraView.</p>
  
  <pre><code>    public class Tutorial3View extends JavaCameraView implements PictureCallback {
  
      private static final String TAG = "Sample::Tutorial3View";
      private String mPictureFileName;
  
      public Tutorial3View(Context context, AttributeSet attrs) {
          super(context, attrs);
      }
  
      public List&lt;String&gt; getEffectList() {
          return mCamera.getParameters().getSupportedColorEffects();
      }
  
      public boolean isEffectSupported() {
          return (mCamera.getParameters().getColorEffect() != null);
      }
  
      public String getEffect() {
          return mCamera.getParameters().getColorEffect();
      }
  
      public void setEffect(String effect) {
          Camera.Parameters params = mCamera.getParameters();
          params.setColorEffect(effect);
          mCamera.setParameters(params);
      }
  
      public List&lt;Size&gt; getResolutionList() {
          return mCamera.getParameters().getSupportedPreviewSizes();
      }
  
      public void setResolution(Size resolution) {
          disconnectCamera();
          mMaxHeight = resolution.height;
          mMaxWidth = resolution.width;
          connectCamera(getWidth(), getHeight());
      }
  
      public Size getResolution() {
          return mCamera.getParameters().getPreviewSize();
      }
  
      public void takePicture(final String fileName) {
          Log.i(TAG, "Taking picture");
          this.mPictureFileName = fileName;
          // Postview and jpeg are sent in the same buffers if the queue is not empty when performing a capture.
          // Clear up buffers to avoid mCamera.takePicture to be stuck because of a memory issue
          mCamera.setPreviewCallback(null);
  
          // PictureCallback is implemented by the current class
          mCamera.takePicture(null, null, this);
      }
  
      @Override
      public void onPictureTaken(byte[] data, Camera camera) {
          Log.i(TAG, "Saving a bitmap to file");
          // The camera preview was automatically stopped. Start it again.
          mCamera.startPreview();
          mCamera.setPreviewCallback(this);
  
          // Write the image in a file (in jpeg format)
          try {
              FileOutputStream fos = new FileOutputStream(mPictureFileName);
  
              fos.write(data);
              fos.close();
  
          } catch (java.io.IOException e) {
              Log.e("PictureDemo", "Exception in photoCallback", e);
          }
  
      }
  }
  </code></pre>