Android:在风景模式下拍摄的照片强制
嗨已建立在Camera Preview上。Android:在风景模式下拍摄的照片强制
即使在纵向模式下,它也显示了风景预览。我用一些额外的代码改变了这个。但是,无论您的横向/纵向,它总是将图像保存为横向模式。
香港专业教育学院也现在被迫肖像模式:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
我基本上采取任何图像中的风景出来。 (旋转拍摄的肖像)。
我该如何让它在定向模式下保存照片,或锁定到肖像假设?
我考虑过拍照阵列并旋转90度。但是,这需要将图像绘制到位图上,然后旋转并存储回数组。矫枉过正?除非你可以直接旋转图像数组?
先检查使用下面摘录相机方向:
private int lookupRotation() {
WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display mDisplay = mWindowManager.getDefaultDisplay();
int rotation = mDisplay.getRotation();
Log.v(LOG_TAG, "rotation: " + rotation);
return rotation;
}
然后使用检查所需的旋转,并设置你的定位:
if (rotation == Surface.ROTATION_0) {
int degreesRotate = 90;
}
调整的位图和旋转你的位图基于以下使用方向代码段:
private Bitmap createBitmap(byte[] imageData, int maxWidth, int maxHeight,
int rotationDegrees) throws FileNotFoundException {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
options.inDensity = 240;
int imageWidth = 0;
int imageHeight = 0;
Bitmap image = BitmapFactory.decodeByteArray(imageData, 0,
imageData.length, options);
imageWidth = image.getWidth();
imageHeight = image.getHeight();
if (imageWidth > maxWidth || imageHeight > maxHeight) {
double imageAspect = (double) imageWidth/imageHeight;
double desiredAspect = (double) maxWidth/maxHeight;
double scaleFactor;
if (imageAspect < desiredAspect) {
scaleFactor = (double) maxHeight/imageHeight;
} else {
scaleFactor = (double) maxWidth/imageWidth;
}
float scaleWidth = ((float) scaleFactor) * imageWidth;
float scaleHeight = ((float) scaleFactor) * imageHeight;
Bitmap scaledBitmap = Bitmap.createScaledBitmap(image,
(int) scaleWidth, (int) scaleHeight, true);
image = scaledBitmap;
}
if (rotationDegrees != 0) {
int w = image.getWidth();
int h = image.getHeight();
mtx.postRotate(rotationDegrees);
Bitmap rotatedBMP = Bitmap.createBitmap(image, 0, 0, w, h, mtx,
true);
image = rotatedBMP;
}
return image;
}
上述方法将retu基于方向的rns位图。
这仍然适用于定向被迫肖像? (旋转屏幕导致一切不必要的重新创建 - 导致滞后和坏的动画旋转效果)。看看getrotation代码,它似乎在检查手机方向而不是我的应用程序? - 我试试看,看起来很有前途 – Doomsknight
这是一个处理方向的想法,只需根据您的需求定制 – Venky
这还只是获得应用的方向。而且,由于速度的原因,现在固定为肖像,拍照时呈现纵向。不确定如何获得电话 – Doomsknight
您只需要将图像保存在横向模式下? @Doomsknight – Venky
像是,他们只能保存在肖像模式。或者为了检测当前的方向,并采取相应的行动 – Doomsknight