开发者社区> 问答> 正文

android 相机拍照图片大小设置问题:报错

我在使用SurfaceView与Camera开发拍照功能问题时,遇到以下几个问题一直无法解决 :

1.我使用Camera的setPreviewSize设置相机取景影像大小,结果不管怎么设置,均没有任何改变,已然完全占据整个SurfaceView;

2.我在Manifest.xml中的相关activity那里设置了android:configChanges="orientation|keyboardHidden",但是依然还是会发生转屏事件,在改变手机方位的时候,屏幕会闪一下,然后拍照取景界面方位会发生改变;

3.在竖屏时,取景影像向左旋转了90度,导致影像不正确;当我把手机横握的时候,首先发生问题2,然后取景影像方位变正常;

这些问题该怎么解决,我弄了两天都没办法,请各位不吝赐教。


我也碰到这样的问题,现在正在解决。
我们产品上是在landscape下全屏,preview出现90度的旋转,portrait下预览正常。
我目前的做法是将portrait下的layout进行了更改,将其更改成了landscape时的样子,不会出现旋转,但是出现了预览图片时的 拉伸。

我想达到的目标是不改布局,通过旋转预览的SurfaceView上面的frame来达到效果,但是目前不知道怎么去旋转。
在网上找到的一些方法基本就是set("orientation","portrait”),set("rotation","90");还有就是在xml中设置。这些方法我都试过了,不行。

我尝试了一下通过旋转SurfaceView来调整 preview rotation,试了一些方法也不行。有谁试过这样的方法吗?

另外,我还在onPreviewFrame中将预览时获取和每一帧数据通过BitMap旋转,也不行。
在老外一些网站上看到,有人说这是2.1系统的一个Bug,在以后的版本中解决了这个问题,个人同意这种说法,在2.2及后的版本中有这样一个方法setDisplayOrientaton()好像可以解决。

我看到华为手机上,2.1系统,已经解决了这个问题。

以上是我这段时间解决这个问题时发现的一些东西,但是问题依然没有解决,希望有人能给一些帮助。

展开
收起
kun坤 2020-06-08 11:07:34 885 0
1 条回答
写回答
取消 提交回答
  • 有人帮忙吗
    ######

    preview旋转90度的问题 我也在找解决方案,

    图像拉伸的问题,需要你将你surfaceView的长宽比例,与preview的长宽比例一样,同时还要求holder.setFixedSize( ); 这个函数设置的长宽比例是正确的,就可以解决图像拉伸的问题了。

    有一个注意的是,那个通过camera.params设置的长宽 是不一定生效的,比如相机提供的比值为4:3 你设置长宽为 640*640,他最后照出来的照片是640*480的,这就需要你自己特殊处理了

    ######怎么样啊,第一个问题解决了吗######

    setPreviewSize是设置到底层的预览帧的大小,这个大小的预览数据最后和上层预览框数据一起送到MDP显示,跟你上层应用的预览界面(框)没有必然关系,但一般的APK会要求它们俩个宽高比相同(出现图像拉伸情况的有可能就是比例不相同造成的)。

    图像旋转的问题,如果你有ROOT,可以从中间层拿出YUV数据来看一下是不是正常?或者跑一下MMI测试看有没有这个问题

    2020-06-08 14:54:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载