Java Code Examples for android.view.Surface#ROTATION_270
The following examples show how to use
android.view.Surface#ROTATION_270 .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: OrientationModule.java From react-native-orientation-locker with MIT License | 6 votes |
private String getCurrentOrientation() { final Display display = ((WindowManager) getReactApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); switch (display.getRotation()) { case Surface.ROTATION_0: return "PORTRAIT"; case Surface.ROTATION_90: return "LANDSCAPE-LEFT"; case Surface.ROTATION_180: return "PORTRAIT-UPSIDEDOWN"; case Surface.ROTATION_270: return "LANDSCAPE-RIGHT"; } return "UNKNOWN"; }
Example 2
Source File: CameraConnectionFragment.java From next18-ai-in-motion with Apache License 2.0 | 6 votes |
/** * Configures the necessary {@link Matrix} transformation to `mTextureView`. * This method should be called after the camera preview size is determined in * setUpCameraOutputs and also the size of `mTextureView` is fixed. * * @param viewWidth The width of `mTextureView` * @param viewHeight The height of `mTextureView` */ private void configureTransform(final int viewWidth, final int viewHeight) { final Activity activity = getActivity(); if (null == textureView || null == previewSize || null == activity) { return; } final int rotation = activity.getWindowManager().getDefaultDisplay().getRotation(); final Matrix matrix = new Matrix(); final RectF viewRect = new RectF(0, 0, viewWidth, viewHeight); final RectF bufferRect = new RectF(0, 0, previewSize.getHeight(), previewSize.getWidth()); final float centerX = viewRect.centerX(); final float centerY = viewRect.centerY(); if (Surface.ROTATION_90 == rotation || Surface.ROTATION_270 == rotation) { bufferRect.offset(centerX - bufferRect.centerX(), centerY - bufferRect.centerY()); matrix.setRectToRect(viewRect, bufferRect, Matrix.ScaleToFit.FILL); final float scale = Math.max( (float) viewHeight / previewSize.getHeight(), (float) viewWidth / previewSize.getWidth()); matrix.postScale(scale, scale, centerX, centerY); matrix.postRotate(90 * (rotation - 2), centerX, centerY); } else if (Surface.ROTATION_180 == rotation) { matrix.postRotate(180, centerX, centerY); } textureView.setTransform(matrix); }
Example 3
Source File: MagneticCompass.java From prayer-times-android with Apache License 2.0 | 6 votes |
@Override public void onRotationUpdate(@NonNull float[] newMatrix) { // remap matrix values according to display rotation, as in // SensorManager documentation. switch (mDisplayRotation) { case Surface.ROTATION_90: SensorManager.remapCoordinateSystem(newMatrix, SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, newMatrix); break; case Surface.ROTATION_270: SensorManager.remapCoordinateSystem(newMatrix, SensorManager.AXIS_MINUS_Y, SensorManager.AXIS_X, newMatrix); break; default: break; } mRotationMatrix.set(newMatrix); float[] deviceOrientation = new float[3]; mOrientationCalculator.getOrientation(mRotationMatrix, mDisplayRotation, deviceOrientation); float[] orientation = new float[3]; SensorManager.getOrientation(newMatrix, orientation); mFrag2D.setAngle((int) Math.toDegrees(orientation[0])); }
Example 4
Source File: Camera2Fragment.java From MultiMediaSample with Apache License 2.0 | 6 votes |
/** * Configures the necessary {@link Matrix} transformation to `mTextureView`. * This method should be called after the camera preview size is determined in * setUpCameraOutputs and also the size of `mTextureView` is fixed. * * @param viewWidth The width of `mTextureView` * @param viewHeight The height of `mTextureView` */ private void configureTransform(int viewWidth, int viewHeight) { Activity activity = getActivity(); if (null == mTextureView || null == mPreviewSize || null == activity) { return; } int rotation = activity.getWindowManager().getDefaultDisplay().getRotation(); Matrix matrix = new Matrix(); RectF viewRect = new RectF(0, 0, viewWidth, viewHeight); RectF bufferRect = new RectF(0, 0, mPreviewSize.getHeight(), mPreviewSize.getWidth()); float centerX = viewRect.centerX(); float centerY = viewRect.centerY(); if (Surface.ROTATION_90 == rotation || Surface.ROTATION_270 == rotation) { bufferRect.offset(centerX - bufferRect.centerX(), centerY - bufferRect.centerY()); matrix.setRectToRect(viewRect, bufferRect, Matrix.ScaleToFit.FILL); float scale = Math.max( (float) viewHeight / mPreviewSize.getHeight(), (float) viewWidth / mPreviewSize.getWidth()); matrix.postScale(scale, scale, centerX, centerY); matrix.postRotate(90 * (rotation - 2), centerX, centerY); } else if (Surface.ROTATION_180 == rotation) { matrix.postRotate(180, centerX, centerY); } mTextureView.setTransform(matrix); }
Example 5
Source File: LiveVideoBroadcaster.java From LiveVideoBroadcaster with Apache License 2.0 | 6 votes |
public int getCameraDisplayOrientation() { Camera.CameraInfo info = new Camera.CameraInfo(); Camera.getCameraInfo(currentCameraId, info); int rotation = context.getWindowManager().getDefaultDisplay() .getRotation(); int degrees = 0; switch (rotation) { case Surface.ROTATION_0: degrees = 0; break; case Surface.ROTATION_90: degrees = 90; break; case Surface.ROTATION_180: degrees = 180; break; case Surface.ROTATION_270: degrees = 270; break; } int result; if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { result = (info.orientation + degrees) % 360; result = (360 - result) % 360; // compensate the mirror } else { // back-facing result = (info.orientation - degrees + 360) % 360; } return result; }
Example 6
Source File: Camera2Wrapper.java From DeviceConnect-Android with MIT License | 6 votes |
/** * Configures the necessary {@link Matrix} transformation to `mTextureView`. * This method should be called after the camera preview size is determined in * setUpCameraOutputs and also the size of `mTextureView` is fixed. * * @param viewWidth The width of `mTextureView` * @param viewHeight The height of `mTextureView` */ private void configureTransform(final int viewWidth, final int viewHeight) { Size previewSize = mSettings.getPreviewSize(); int rotation = Camera2Helper.getDisplayRotation(mContext); Matrix matrix = new Matrix(); RectF viewRect = new RectF(0, 0, viewWidth, viewHeight); RectF bufferRect = new RectF(0, 0, previewSize.getHeight(), previewSize.getWidth()); float centerX = viewRect.centerX(); float centerY = viewRect.centerY(); if (Surface.ROTATION_90 == rotation || Surface.ROTATION_270 == rotation) { bufferRect.offset(centerX - bufferRect.centerX(), centerY - bufferRect.centerY()); matrix.setRectToRect(viewRect, bufferRect, Matrix.ScaleToFit.FILL); float scale = Math.max( (float) viewHeight / previewSize.getHeight(), (float) viewWidth / previewSize.getWidth()); matrix.postScale(scale, scale, centerX, centerY); matrix.postRotate(90 * (rotation - 2), centerX, centerY); } else if (Surface.ROTATION_180 == rotation) { matrix.postRotate(180, centerX, centerY); } mTextureView.setTransform(matrix); }
Example 7
Source File: DefaultEasyCamera.java From Expert-Android-Programming with MIT License | 6 votes |
@Override public void alignCameraAndDisplayOrientation(WindowManager windowManager) { Camera.CameraInfo info = new Camera.CameraInfo(); Camera.getCameraInfo(id, info); int rotation = windowManager.getDefaultDisplay().getRotation(); int degrees = 0; switch (rotation) { case Surface.ROTATION_0: degrees = 0; break; case Surface.ROTATION_90: degrees = 90; break; case Surface.ROTATION_180: degrees = 180; break; case Surface.ROTATION_270: degrees = 270; break; } int result; if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { result = (info.orientation + degrees) % 360; result = (360 - result) % 360; // compensate the mirror } else { // back-facing result = (info.orientation - degrees + 360) % 360; } camera.setDisplayOrientation(result); }
Example 8
Source File: CameraTexture.java From PHONK with GNU General Public License v3.0 | 5 votes |
public void setCameraDisplayOrientation(int cameraId, android.hardware.Camera camera) { android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo(); android.hardware.Camera.getCameraInfo(cameraId, info); WindowManager windowManager = (WindowManager) mAppRunner.getAppContext().getSystemService(Context.WINDOW_SERVICE); int rotation = windowManager.getDefaultDisplay().getRotation(); int degrees = 0; switch (rotation) { case Surface.ROTATION_0: degrees = 0; break; case Surface.ROTATION_90: degrees = 90; break; case Surface.ROTATION_180: degrees = 180; break; case Surface.ROTATION_270: degrees = 270; break; } int result; if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { result = (info.orientation + degrees) % 360; result = (360 - result) % 360; // compensate the mirror } else { // back-facing result = (info.orientation - degrees + 360) % 360; } mCameraRotation = result; MLog.d("wewe", "" + mCameraRotation); camera.setDisplayOrientation(mCameraRotation); }
Example 9
Source File: LinphoneGenericActivity.java From linphone-android with GNU General Public License v3.0 | 5 votes |
@Override protected void onResume() { super.onResume(); ensureServiceIsRunning(); if (LinphoneContext.isReady()) { int degrees = 270; int orientation = getWindowManager().getDefaultDisplay().getRotation(); switch (orientation) { case Surface.ROTATION_0: degrees = 0; break; case Surface.ROTATION_90: degrees = 270; break; case Surface.ROTATION_180: degrees = 180; break; case Surface.ROTATION_270: degrees = 90; break; } Log.i( "[Generic Activity] Device orientation is " + degrees + " (raw value is " + orientation + ")"); int rotation = (360 - degrees) % 360; Core core = LinphoneManager.getCore(); if (core != null) { core.setDeviceRotation(rotation); } } }
Example 10
Source File: JoH.java From xDrip-plus with GNU General Public License v3.0 | 4 votes |
@SuppressWarnings("deprecation") @SuppressLint("NewApi") public static void lockOrientation(Activity activity) { Display display = activity.getWindowManager().getDefaultDisplay(); int rotation = display.getRotation(); int height; int width; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) { height = display.getHeight(); width = display.getWidth(); } else { Point size = new Point(); display.getSize(size); height = size.y; width = size.x; } switch (rotation) { case Surface.ROTATION_90: if (width > height) activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); else activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); break; case Surface.ROTATION_180: if (height > width) activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); else activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); break; case Surface.ROTATION_270: if (width > height) activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); else activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; default: if (height > width) activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); else activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } }
Example 11
Source File: ScreenshotUtils.java From brailleback with Apache License 2.0 | 4 votes |
/** * Returns a screenshot with the contents of the current display that * matches the current display rotation. * * @param context The current context. * @return A bitmap of the screenshot. */ public static Bitmap createScreenshot(Context context) { if (!hasScreenshotPermission(context)) { LogUtils.log(ScreenshotUtils.class, Log.ERROR, "Screenshot permission denied."); return null; } final WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); final Bitmap bitmap = SurfaceControlCompatUtils.screenshot(0, 0); // Bail if we couldn't take the screenshot. if (bitmap == null) { LogUtils.log(ScreenshotUtils.class, Log.ERROR, "Failed to take screenshot."); return null; } final int width = bitmap.getWidth(); final int height = bitmap.getHeight(); final int rotation = windowManager.getDefaultDisplay().getRotation(); final int outWidth; final int outHeight; final float rotationDegrees; switch (rotation) { case Surface.ROTATION_90: outWidth = height; outHeight = width; rotationDegrees = 90; break; case Surface.ROTATION_180: outWidth = width; outHeight = height; rotationDegrees = 180; break; case Surface.ROTATION_270: outWidth = height; outHeight = width; rotationDegrees = 270; break; default: return bitmap; } // Rotate the screenshot to match the screen orientation. final Bitmap rotatedBitmap = Bitmap.createBitmap(outWidth, outHeight, Bitmap.Config.RGB_565); final Canvas c = new Canvas(rotatedBitmap); c.translate(outWidth / 2.0f, outHeight / 2.0f); c.rotate(-rotationDegrees); c.translate(-width / 2.0f, -height / 2.0f); c.drawBitmap(bitmap, 0, 0, null); bitmap.recycle(); return rotatedBitmap; }
Example 12
Source File: CameraSource.java From particle-android with Apache License 2.0 | 4 votes |
/** * Calculates the correct rotation for the given camera id and sets the rotation in the * parameters. It also sets the camera's display orientation and rotation. * * @param parameters the camera parameters for which to set the rotation * @param cameraId the camera id to set rotation based on */ private void setRotation(Camera camera, Camera.Parameters parameters, int cameraId) { WindowManager windowManager = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE); int degrees = 0; int rotation = windowManager.getDefaultDisplay().getRotation(); switch (rotation) { case Surface.ROTATION_0: degrees = 0; break; case Surface.ROTATION_90: degrees = 90; break; case Surface.ROTATION_180: degrees = 180; break; case Surface.ROTATION_270: degrees = 270; break; default: Log.e(TAG, "Bad rotation value: " + rotation); } CameraInfo cameraInfo = new CameraInfo(); Camera.getCameraInfo(cameraId, cameraInfo); int angle; int displayAngle; if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { angle = (cameraInfo.orientation + degrees) % 360; displayAngle = (360 - angle) % 360; // compensate for it being mirrored } else { // back-facing angle = (cameraInfo.orientation - degrees + 360) % 360; displayAngle = angle; } // This corresponds to the rotation constants. this.rotation = angle / 90; camera.setDisplayOrientation(displayAngle); parameters.setRotation(angle); }
Example 13
Source File: CommonUtil.java From GSYVideoPlayer with Apache License 2.0 | 4 votes |
public static boolean getCurrentScreenLand(Activity context) { return context.getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_90 || context.getWindowManager().getDefaultDisplay().getRotation() == Surface.ROTATION_270; }
Example 14
Source File: CustomMediaController.java From ZZShow with Apache License 2.0 | 4 votes |
public int getScreenOrientation(Activity activity){ int rotation = activity.getWindowManager().getDefaultDisplay().getRotation(); DisplayMetrics dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; int height = dm.heightPixels; int orientation; // if the device's natural orientation is portrait: if((rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) && height > width || (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) && width > height){ switch (rotation){ case Surface.ROTATION_0: orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; break; case Surface.ROTATION_90: orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; break; case Surface.ROTATION_180: orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; break; case Surface.ROTATION_270: orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; break; default: orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; break; } } // if the device's natural orientation is landscape or if the device // is square: else{ switch (rotation){ case Surface.ROTATION_0: orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; break; case Surface.ROTATION_90: orientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; break; case Surface.ROTATION_180: orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; break; case Surface.ROTATION_270: orientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; break; default: orientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; break; } } return orientation; }
Example 15
Source File: WorldController.java From tilt-game-android with MIT License | 4 votes |
/** * Game loop */ @Override public void onManagedUpdate(float pSecondsElapsed) { super.onManagedUpdate(pSecondsElapsed); if (_levelController == null) { return; } if (_started) { // update gravity from phone orientation EulerAngles eulerAngles = _orientationProvider.getEulerAngles(); // get limited roll & pitch float roll = MathUtils.bringToBounds(-MAX_ORIENTATION_ANGLE, MAX_ORIENTATION_ANGLE, eulerAngles.getRoll()); float pitch = MathUtils.bringToBounds(-MAX_ORIENTATION_ANGLE, MAX_ORIENTATION_ANGLE, eulerAngles.getPitch()); // correct for screen orientation, different on tablets than on phones float swap; switch (_screenRotation) { case Surface.ROTATION_0: break; case Surface.ROTATION_270: swap = pitch; pitch = -roll; roll = swap; break; case Surface.ROTATION_180: pitch = -pitch; roll = -roll; break; case Surface.ROTATION_90: swap = pitch; pitch = roll; roll = -swap; break; } _gravity.set(_radToGravity * roll, _radToGravity * pitch); _gravity.add(_gravityCorrection); _physicsWorld.setGravity(_gravity); checkDestroyBall(); // update ball location, if there's a ball, we're not animating, and the level hasn't been completed if (_ball != null && !_isAnimating && !_isLevelCompleted) { _timePassed += pSecondsElapsed; // update physics world _physicsWorld.onUpdate(pSecondsElapsed); // check if the ball needs to be destroyed checkDestroyBall(); // recheck, since world update may have removed the ball if (_ball != null && !_isAnimating) { Vector2 ballPosition = _ball.getPosition(); ballPosition.mul(PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT); _ballSprite.setPosition(ballPosition.x, ballPosition.y); } if (_levelDuration > 0) { updateTimer(pSecondsElapsed); } } } }
Example 16
Source File: Camera1Manager.java From phoenix with Apache License 2.0 | 4 votes |
private void startPreview(SurfaceHolder surfaceHolder) { try { final Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); Camera.getCameraInfo(mCameraId, cameraInfo); int cameraRotationOffset = cameraInfo.orientation; final Camera.Parameters parameters = camera.getParameters(); setAutoFocus(camera, parameters); setFlashMode(cameraConfigProvider.getFlashMode()); if (cameraConfigProvider.getMediaAction() == CameraConfig.MEDIA_ACTION_PHOTO || cameraConfigProvider.getMediaAction() == CameraConfig.MEDIA_ACTION_UNSPECIFIED) turnPhotoCameraFeaturesOn(camera, parameters); else if (cameraConfigProvider.getMediaAction() == CameraConfig.MEDIA_ACTION_PHOTO) turnVideoCameraFeaturesOn(camera, parameters); final int rotation = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation(); int degrees = 0; switch (rotation) { case Surface.ROTATION_0: degrees = 0; break; // Natural orientation case Surface.ROTATION_90: degrees = 90; break; // Landscape left case Surface.ROTATION_180: degrees = 180; break;// Upside down case Surface.ROTATION_270: degrees = 270; break;// Landscape right } if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { displayRotation = (cameraRotationOffset + degrees) % 360; displayRotation = (360 - displayRotation) % 360; // compensate } else { displayRotation = (cameraRotationOffset - degrees + 360) % 360; } this.camera.setDisplayOrientation(displayRotation); if (Build.VERSION.SDK_INT > 13 && (cameraConfigProvider.getMediaAction() == CameraConfig.MEDIA_ACTION_VIDEO || cameraConfigProvider.getMediaAction() == CameraConfig.MEDIA_ACTION_UNSPECIFIED)) { // parameters.setRecordingHint(true); } if (Build.VERSION.SDK_INT > 14 && parameters.isVideoStabilizationSupported() && (cameraConfigProvider.getMediaAction() == CameraConfig.MEDIA_ACTION_VIDEO || cameraConfigProvider.getMediaAction() == CameraConfig.MEDIA_ACTION_UNSPECIFIED)) { parameters.setVideoStabilization(true); } parameters.setPreviewSize(mPreviewSize.getWidth(), mPreviewSize.getHeight()); parameters.setPictureSize(mPhotoSize.getWidth(), mPhotoSize.getHeight()); camera.setParameters(parameters); camera.setPreviewDisplay(surfaceHolder); camera.startPreview(); } catch (IOException error) { Log.d(TAG, "Error setting camera preview: " + error.getMessage()); } catch (Exception ignore) { Log.d(TAG, "Error starting camera preview: " + ignore.getMessage()); } }
Example 17
Source File: CameraSource.java From quickstart-android with Apache License 2.0 | 4 votes |
/** * Calculates the correct rotation for the given camera id and sets the rotation in the * parameters. It also sets the camera's display orientation and rotation. * * @param parameters the camera parameters for which to set the rotation * @param cameraId the camera id to set rotation based on */ private void setRotation(Camera camera, Camera.Parameters parameters, int cameraId) { WindowManager windowManager = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE); int degrees = 0; int rotation = windowManager.getDefaultDisplay().getRotation(); switch (rotation) { case Surface.ROTATION_0: degrees = 0; break; case Surface.ROTATION_90: degrees = 90; break; case Surface.ROTATION_180: degrees = 180; break; case Surface.ROTATION_270: degrees = 270; break; default: Log.e(TAG, "Bad rotation value: " + rotation); } CameraInfo cameraInfo = new CameraInfo(); Camera.getCameraInfo(cameraId, cameraInfo); int angle; int displayAngle; if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) { angle = (cameraInfo.orientation + degrees) % 360; displayAngle = (360 - angle) % 360; // compensate for it being mirrored } else { // back-facing angle = (cameraInfo.orientation - degrees + 360) % 360; displayAngle = angle; } // This corresponds to the rotation constants. this.rotation = angle / 90; Log.d(TAG, "Display rotation is: " + rotation); Log.d(TAG, "Camera face is: " + cameraInfo.facing); Log.d(TAG, "Camera rotation is: " + cameraInfo.orientation); Log.d(TAG, "Rotation is: " + this.rotation); camera.setDisplayOrientation(displayAngle); parameters.setRotation(angle); }
Example 18
Source File: KeyboardAwareLinearLayout.java From deltachat-android with GNU General Public License v3.0 | 4 votes |
public boolean isLandscape() { int rotation = getDeviceRotation(); return rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270; }
Example 19
Source File: CameraConfigurationManager.java From barcodescanner-lib-aar with MIT License | 4 votes |
void setDesiredCameraParameters(OpenCamera camera, boolean safeMode) { Camera theCamera = camera.getCamera(); int rotation = context.getApplicationContext().getResources().getConfiguration().orientation; WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = windowManager.getDefaultDisplay(); int deviceSpecificRotation = display.getRotation(); if (rotation == Configuration.ORIENTATION_PORTRAIT) { if (deviceSpecificRotation == Surface.ROTATION_0 || deviceSpecificRotation == Surface.ROTATION_90) { theCamera.setDisplayOrientation(90); } else { theCamera.setDisplayOrientation(270); } } else { // landscape if (deviceSpecificRotation == Surface.ROTATION_180 || deviceSpecificRotation == Surface.ROTATION_270) { theCamera.setDisplayOrientation(180); } } Camera.Parameters parameters = theCamera.getParameters(); if (parameters == null) { Log.w(TAG, "Device error: no camera parameters are available. Proceeding without configuration."); return; } Log.i(TAG, "Initial camera parameters: " + parameters.flatten()); if (safeMode) { Log.w(TAG, "In camera config safe mode -- most settings will not be honored"); } SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); initializeTorch(parameters, prefs, safeMode); CameraConfigurationUtils.setFocus( parameters, prefs.getBoolean(PreferencesActivity.KEY_AUTO_FOCUS, true), prefs.getBoolean(PreferencesActivity.KEY_DISABLE_CONTINUOUS_FOCUS, true), safeMode); if (!safeMode) { if (prefs.getBoolean(PreferencesActivity.KEY_INVERT_SCAN, false)) { CameraConfigurationUtils.setInvertColor(parameters); } if (!prefs.getBoolean(PreferencesActivity.KEY_DISABLE_BARCODE_SCENE_MODE, true)) { CameraConfigurationUtils.setBarcodeSceneMode(parameters); } if (!prefs.getBoolean(PreferencesActivity.KEY_DISABLE_METERING, true)) { CameraConfigurationUtils.setVideoStabilization(parameters); CameraConfigurationUtils.setFocusArea(parameters); CameraConfigurationUtils.setMetering(parameters); } } parameters.setPreviewSize(bestPreviewSize.x, bestPreviewSize.y); theCamera.setParameters(parameters); theCamera.setDisplayOrientation(cwRotationFromDisplayToCamera); Camera.Parameters afterParameters = theCamera.getParameters(); Camera.Size afterSize = afterParameters.getPreviewSize(); if (afterSize != null && (bestPreviewSize.x != afterSize.width || bestPreviewSize.y != afterSize.height)) { Log.w(TAG, "Camera said it supported preview size " + bestPreviewSize.x + 'x' + bestPreviewSize.y + ", but after setting it, preview size is " + afterSize.width + 'x' + afterSize.height); bestPreviewSize.x = afterSize.width; bestPreviewSize.y = afterSize.height; } }
Example 20
Source File: AndroidUtilities.java From Telegram-FOSS with GNU General Public License v2.0 | 4 votes |
@SuppressLint("WrongConstant") public static void lockOrientation(Activity activity) { if (activity == null || prevOrientation != -10) { return; } try { prevOrientation = activity.getRequestedOrientation(); WindowManager manager = (WindowManager) activity.getSystemService(Activity.WINDOW_SERVICE); if (manager != null && manager.getDefaultDisplay() != null) { int rotation = manager.getDefaultDisplay().getRotation(); int orientation = activity.getResources().getConfiguration().orientation; if (rotation == Surface.ROTATION_270) { if (orientation == Configuration.ORIENTATION_PORTRAIT) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } else { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); } } else if (rotation == Surface.ROTATION_90) { if (orientation == Configuration.ORIENTATION_PORTRAIT) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); } else { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } } else if (rotation == Surface.ROTATION_0) { if (orientation == Configuration.ORIENTATION_LANDSCAPE) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } else { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } } else { if (orientation == Configuration.ORIENTATION_LANDSCAPE) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); } else { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); } } } } catch (Exception e) { FileLog.e(e); } }