2 usniyo usniyo 于 2013.01.15 11:38 提问

请教关于android camera 预览显示方向的一个问题。

请教关于android camera 预览显示方向的一个问题:有什么方法能够在android 1.6以上的设备都可以设置预览显示方向?

2个回答

Eiseno
Eiseno   2013.01.15 13:20
已采纳

大多数的相机程序都使用横向拍照,这也是摄像头传感器的自然方向。但是这并不影响您在竖屏的时候拍照,设备的方向信息会存储到图片的EXIF信息中。可以通过函数 setCameraDisplayOrientation() 来改变预览的显示方向而不影响图片的保存数据。然而,在API level 14之前的版本中,在修改预览方向之前需要先停止预览窗口然后重新启动预览。

更多关于照相时候的问题看http://wiki.heyitao.com/program/android/training/camera-cameradirect

Eiseno
Eiseno 还真没碰到过你说的这个,不过我看到有这个http://android.tgbus.com/Android/tutorial/201104/349965.shtml或许可以对你有帮助。保存之后的宽高记录一下,然后在显示的时候取一下宽高的值试试。
接近 5 年之前 回复
usniyo
usniyo 非常感谢您的回答,分区方向这个问题有点荒唐,不管它了。那么我想再请问一下,拍下照片得到byte[]后,如何根据其方向信息保存为高和宽符合方向的jpg文件?因为我直接用byte[]写到文件,得到的图像的宽、高与方向不一致。也就是竖拍时的图像应该宽小于高,但实际上总是宽大于高。因此将此图直接放到imageview上还是倒着的。
接近 5 年之前 回复
Eiseno
Eiseno 没怎么明白,你的显示方向是预览时候的方向?你是想预览的时候都是横屏的,拍完之后的图像想让按照拍照时候的方向显示?
接近 5 年之前 回复
usniyo
usniyo 由于要考虑不同设备可能带来的问题,我将预览Activity设成横屏了,这样就不管显示方向的问题,可是这样又带来了一个新的问题:图像的方向就只是一个方向了,无法区分拍照时的方向了。这时该怎么办呢?
接近 5 年之前 回复
xinyoulingxi1_tong
xinyoulingxi1_tong   2013.01.15 13:35

可以用:

preview.set("orientation", "portrait");
preview.set("rotation",90);

或者:

preview.set("orientation", "landscape");          
preview.set("rotation", 90);
Csdn user default icon
上传中...
上传图片
插入图片