600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > android+相机画面旋转 Android:相机预览的屏幕方向/旋转

android+相机画面旋转 Android:相机预览的屏幕方向/旋转

时间:2023-12-04 14:57:04

相关推荐

android+相机画面旋转 Android:相机预览的屏幕方向/旋转

我已经创建了一个相机应用程序,我想让我的应用程序在所有4个可能的方向转换,并相应地更新相机预览.因为我已经使用我从以下复制的以下方法:

Android – Camera preview is sideways

public void updateCameraDisplay(int w, int h) {

// set preview size and make any resize, rotate or

// reformatting changes here

Log.i("CameraPreviews", "Updating camera orientation with w=" + w

+ " and h=" + h);

Parameters parameters = camera.getParameters();

Display display = getActivity().getWindowManager()

.getDefaultDisplay();

int rotation = getActivity().getResources().getConfiguration().orientation;

Log.i("CameraPreviews", "rotation is " + display.getRotation());

if (display.getRotation() == Surface.ROTATION_0) {

parameters.setPreviewSize(h, w);

camera.setDisplayOrientation(0);

}

if (display.getRotation() == Surface.ROTATION_90) {

parameters.setPreviewSize(w, h);

camera.setDisplayOrientation(270);

}

if (display.getRotation() == Surface.ROTATION_180) {

parameters.setPreviewSize(h, w);

camera.setDisplayOrientation(180);

}

if (display.getRotation() == Surface.ROTATION_270) {

parameters.setPreviewSize(w, h);

camera.setDisplayOrientation(90);

}

try {

camera.setParameters(parameters);

} catch (Exception e) {

e.printStackTrace();

}

}

}

我已经调整了价值观,在三星Galaxy Tab2上进行测试,最终得到正确的方向,一切正常.当我尝试在htc一个手机它根本不工作!!!!!所有的方向是完全错误的!所以我得出结论,thre必须是2种类型的设备(或更多…请不要!),因为旋转表示屏幕已经从其“默认”位置旋转了多少度,一些设备有一个默认位置和其他另一个.我如何知道这个默认轮播,并在我的代码中相应地进行操作?

EJ:

defaultOrientation =一些代码

if(defaultOrientation == 0)…

别….

锁定屏幕方向是没有问题的.

目标api = 11

非常感谢

编辑:

我修改了我的代码:

public void updateCameraDisplay(int w, int h) {

// set preview size and make any resize, rotate or

// reformatting changes here

Log.i("CameraPreviews", "Updating camera orientation with w=" + w

+ " and h=" + h);

Parameters parameters = camera.getParameters();

Display display = getActivity().getWindowManager()

.getDefaultDisplay();

int rotation = getActivity().getResources().getConfiguration().orientation;

Log.i("CameraPreviews", "screen rotation is " + rotation);

Log.i("CameraPreviews", "display rotation is " + display.getRotation());

if (display.getRotation() == Surface.ROTATION_0) {

if (rotation == Configuration.ORIENTATION_LANDSCAPE) {

parameters.setPreviewSize(h, w);

camera.setDisplayOrientation(0);

} else {

parameters.setPreviewSize(h, w);

camera.setDisplayOrientation(90);

}

}

else if (display.getRotation() == Surface.ROTATION_90) {

if (rotation == Configuration.ORIENTATION_PORTRAIT) {

parameters.setPreviewSize(w, h);

camera.setDisplayOrientation(270);

} else {

parameters.setPreviewSize(w, h);

//camera.setDisplayOrientation(0);

}

}

else if (display.getRotation() == Surface.ROTATION_180) {

if (rotation == Configuration.ORIENTATION_LANDSCAPE) {

parameters.setPreviewSize(h, w);

camera.setDisplayOrientation(180);

}else {

parameters.setPreviewSize(h, w);

camera.setDisplayOrientation(270);

}

}

else if (display.getRotation() == Surface.ROTATION_270) {

if (rotation == Configuration.ORIENTATION_PORTRAIT) {

parameters.setPreviewSize(w, h);

camera.setDisplayOrientation(90);

} else {

parameters.setPreviewSize(w, h);

camera.setDisplayOrientation(180);

}

}

try {

camera.setParameters(parameters);

} catch (Exception e) {

e.printStackTrace();

}

}

只要我们不以纵向模式旋转手机,就可以在htc一个和三星Galaxy Tab上更好地工作

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。