Android 当设备处于横向时拍摄人像照片有问题吗?

Android 当设备处于横向时拍摄人像照片有问题吗?,android,camera,Android,Camera,我正在为一个设备制作一个相当专业的相机应用程序,这个设备在物理上总是以横向的方式进行。该规范的一部分是,它必须能够预览和拍照的肖像方向-见下图 我遇到运行时异常“setParameters failed”(响应对camera.setParameters())的调用)的问题,我只是想在这里检查一下是否存在您认为我可能遇到的一些基本问题。例如,相机背面的光传感器可能是一个长方形,在物理上无法实现,或者可能是其他一些不可避免的问题。(顺便说一句,我被告知光传感器应布置在一个正方形中,因此不会发生此问题

我正在为一个设备制作一个相当专业的相机应用程序,这个设备在物理上总是以横向的方式进行。该规范的一部分是,它必须能够预览和拍照的肖像方向-见下图

我遇到运行时异常“setParameters failed”(响应对
camera.setParameters()
)的调用)的问题,我只是想在这里检查一下是否存在您认为我可能遇到的一些基本问题。例如,相机背面的光传感器可能是一个长方形,在物理上无法实现,或者可能是其他一些不可避免的问题。(顺便说一句,我被告知光传感器应布置在一个正方形中,因此不会发生此问题-但我的来源可能是错误的)。也许这取决于硬件

编辑:仅供参考,我的崩溃日志如下:

D/AndroidRuntime(7210): Shutting down VM
W/dalvikvm(7210): threadid=1: thread exiting with uncaught exception (group=0x415c2d88)
E/AndroidRuntime(7210): FATAL EXCEPTION: main
E/AndroidRuntime(7210): Process: com.rai.motion, PID: 7210
E/AndroidRuntime(7210): java.lang.RuntimeException: Unable to resume activity {com.rai.motion/com.rai.motion.MotionMain}: java.lang.RuntimeException: setParameters failed
E/AndroidRuntime(7210):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2850)
E/AndroidRuntime(7210):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2879)
E/AndroidRuntime(7210):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2303)
E/AndroidRuntime(7210):     at android.app.ActivityThread.access$800(ActivityThread.java:144)
E/AndroidRuntime(7210):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
E/AndroidRuntime(7210):     at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(7210):     at android.os.Looper.loop(Looper.java:212)
E/AndroidRuntime(7210):     at android.app.ActivityThread.main(ActivityThread.java:5151)
E/AndroidRuntime(7210):     at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(7210):     at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(7210):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
E/AndroidRuntime(7210):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
E/AndroidRuntime(7210):     at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(7210): Caused by: java.lang.RuntimeException: setParameters failed
E/AndroidRuntime(7210):     at android.hardware.Camera.native_setParameters(Native Method)
E/AndroidRuntime(7210):     at android.hardware.Camera.setParameters(Camera.java:1689)
E/AndroidRuntime(7210):     at com.rai.motion.MotionMain.change_java_recording_camera_settings(MotionMain.java:2105)
E/AndroidRuntime(7210):     at com.rai.motion.MotionMain.start_recording_camera(MotionMain.java:2154)
E/AndroidRuntime(7210):     at com.rai.motion.MotionMain.onResume(MotionMain.java:6013)
E/AndroidRuntime(7210):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192)
E/AndroidRuntime(7210):     at android.app.Activity.performResume(Activity.java:5310)
E/AndroidRuntime(7210):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2840)
E/AndroidRuntime(7210):     ... 12 more
I/Process(7210): Sending signal. PID: 7210 SIG: 9

不久前我做了一个小型的摄像头测试应用程序。当设备处于横向时,以纵向模式显示相机预览没有问题。将相机图像旋转直角是很困难的(因为此旋转角度取决于设备/相机)。然而,问题是,当时的透视图并不匹配:物体似乎更胖或有拉伸。但要找出重新计算算法不需要花费太多的时间在Stackoverflow上

那么关于

我只是想看看这里是否有一些根本性的问题 你认为我可能会遇到的

[……]实际上这是不可能实现的——或者可能是其他一些不可避免的问题


答案是:这是一项可行的任务。您的异常可能有完全不同的原因。

也添加您的
异常。
我不太确定,请看以下内容: