我这里有2个机器人.
在他们两个中,当我打开我的应用程序时,相机显示出可怕的错误(侧向转90度,通常拉伸......)
在其中一部手机中,有一个键盘,当我打开键盘时,应用程序正常工作...由于键盘强制定位,我认为问题是手机期望总是相同的方向,但SDK不同意.
然后我如何通知相机它应该一直使用的方向?
Rya*_*ves 20
如果您的应用程序在v2.2或更高版本上运行,则可以使用camera.setDisplayOrientation(90)将相机方向旋转为纵向.
在v2.2之前,相机仅以横向显示,因此您不得不将活动设置为横向.
要支持v2.2(API级别8)之前和之后的设备,一种解决方案是在AndroidManifest.xml中将活动方向默认为landscape.然后在运行时检查API级别,如果是froyo或更高级别,请将活动方向更改为纵向并旋转相机显示.
//in activity onCreate method
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//After opening camera - call via reflection
Method rotateMethod = android.hardware.Camera.class.getMethod("setDisplayOrientation", int.class);
rotateMethod.invoke(mCamera, 90);
Run Code Online (Sandbox Code Playgroud)
这是最直接的解决方案,希望随着新设备的推出,v2.1及以下版本将从雷达中脱颖而出.
| 归档时间: |
|
| 查看次数: |
4215 次 |
| 最近记录: |