我在使用urfaceView与Camera开发拍照功能问题时,遇到以下几个问题一直无法解决 :1.我使用Camera的setPreviewSize设置相机取景影像大小,结果不管怎么设置,均没有任何改变,已然完全占据整个SurfaceView;2.我在Manifest.xml中的相关activity那里设置了android:configChanges="orientation|keyboardHidden",但是依然还是会发生转屏事件,在改变手机方位的时候,屏幕会闪一下,然后拍照取景界面方位会发生改变;3.在竖屏时,取景影像向左旋转了90度,导致影像不正确;当我把手机横握的时候,首先发生问题2,然后取景影像方位变正常;这些问题该怎么解决,我弄了两天都没办法,请各位不吝赐教。
解决方案 »
- 现在哪个2d游戏框架/引擎好用?
- 求助,从网络下载多图片到本地,怎么用handlerthread实现
- 多个C库一个C文件的Android.mk编写
- proguard.config=proguard.cfg有没比这种方式更好的混淆?
- 求大神帮忙解释android中声音感应的代码(作为初学者的菜鸟表示看不懂!)
- 怎么实现gridview的子控件的拖动呢
- 数据同步如何做到最省流量,最高效率,求大牛指导
- openfire实现广播的原理是什么
- 小白求助Android Studio无法创建AVD并提示An error occurred while creating the AVD. See idea.l
- 新版的Android Studio 中, 怎么找不到DDMS或类似功能的窗口了呢?
- 安卓布局控件
- 请问这个JAVA语法含义?
第二个问题:this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);在activity的onCreate方法中插入,但是要再setContentView前面。
我们产品上是在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系统,已经解决了这个问题。以上是我这段时间解决这个问题时发现的一些东西,但是问题依然没有解决,希望有人能给一些帮助。
希望这篇文章可以帮助到你