我想开发一个使用相机的应用程序。到目前为止,它一直运转良好,除了我无法强制定位为“肖像”。如果我强制将所有活动强制为“风景”,似乎工作得很好,因为相机预览似乎适合风景。使用相机在纵向方向
无论如何在纵向模式下使用相机?
我想开发一个使用相机的应用程序。到目前为止,它一直运转良好,除了我无法强制定位为“肖像”。如果我强制将所有活动强制为“风景”,似乎工作得很好,因为相机预览似乎适合风景。使用相机在纵向方向
无论如何在纵向模式下使用相机?
Android装置V2.2和上述含有与API以旋转显示到肖像。 2.2以下的设备仅适用于景观。您最好的选择是检测设备是否为2.2并旋转90度。回到2.2以下的设备的景观。好消息是大多数Android设备都在2.2以上。
看看我的答案在这里获得更多信息:
好的知识,我可以看到很多人没有找到解决方案有这个问题。 – 2011-11-28 18:12:56
您可能需要在应用中添加一项设置,以允许用户强制使用风景。我已经测试过,似乎不可能在某些设备上强制使用肖像。到目前为止,我知道这些设备无法设置为人像,即使使用Android 2.2+:“GT-S6102”,“GT-S5360”,“GT-S5660”,“YP-G1”,“YP-G70”。我相信还有更多:/ – 2012-09-07 00:04:47
编辑:当我回答了这个问题并且回顾了这个问题后,我意识到这个问题不属于Adobe AIR。
Adobe表示:
在可以更改屏幕方向的设备,如手机,连接到摄像机的视频对象将只显示直立视频在景观方面的取向。因此,移动应用在显示视频时应该使用横向方向,并且不应该自动旋转。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html
如果你真的想用在人像模式下,相机,我的建议是旋转的视频对象。
下面是由在度的角度旋转的视频对象(_视频)(源从其他地方拉到计算器)的一些示例代码:
var matrix:Matrix = _video.transform.matrix;
var rect:Rectangle = _video.getBounds(this);
matrix.translate(- (rect.left + (rect.width/2)), - (rect.top + (rect.height/2)));
matrix.rotate((angle/180)*Math.PI);
matrix.translate(rect.left + (rect.width/2), rect.top + (rect.height/2));
_video.transform.matrix = matrix;
public void surfaceCreated(SurfaceHolder holder)
{
// The Surface has been created, acquire the camera and tell it where to draw.
mCamera = Camera.open();
Parameters params = mCamera.getParameters();
if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE)
{
params.set("orientation", "portrait");
mCamera.setDisplayOrientation(90);
}
try
{
mCamera.setPreviewDisplay(holder);
}
catch (IOException exception)
{
mCamera.release();
mCamera = null;
}
}
是G1设备或非G1设备上G1S有用于定向 – 2010-09-11 16:13:55
弗雷德嗨显示摄像头预览错误,我使用三星Galaxy S ... – paperclip 2010-09-12 15:40:30