在用SurfaceView 和Camera 做摄像头程序时,常常会遇到一些比较纠结的问题,这里简单描述下:

1、预览取景反转

这种情况,再低版本sdk中,必须设置为横屏模式[android:screenOrientation="landscape"]

2、预览图像被拉伸变形

由于预览大小跟SurfaceView 大小不一致引起,常常需要根据surfaceChanged事件的参数width和height,获取系统支持的所有预览尺寸[getSupportedPictureSizes],然后再取一个比较接近的尺寸进行设置[setPreviewSize]

3、预览速率

需要先根据[GetSupportedPreviewFrameRates]获取系统支持的,然后,选择一个最低的进行设置[setPreviewFrameRate]即可

4、保存图片反转

在拍照[takePicture]之前,先对rotation进行偏转设置[rotation]

5、设置为横屏模式之后,UI界面怎么伪横竖屏

添加个OrientationEventListener根据获取不同方向,调整UI布局,对于一些比较特殊,不变调整的控件,可以采用播放动画的方式来实现。

目前,我还遇到一个比较纠结的问题,就是保存相片时,stopPreview 和再次startPreview之间,SurfaceView上会显示一个静态的画面,该画面被拉伸,不知什么原因,请知道原因的大虾赐教!

更多相关文章

  1. Android(安卓)4.4 在启动到 ANDROID 闪光字的时候图像错乱的解决
  2. android ListView根据字母排序和定位
  3. 获取Android的Java源代码并在Eclipse中关联查看的最新方法
  4. Android获取手机经纬度
  5. Android(安卓)SharedPreferences详解
  6. android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
  7. Android获取webView快照与屏幕截屏的方法
  8. Android(安卓)系统开发(2)--Android(安卓)Treble详细分析
  9. python list.sort()根据多个关键字排序的方法实现

随机推荐

  1. Android(安卓)Update Engine分析(八)升级包
  2. 在Android中使用MD5
  3. service 的调用【转】
  4. java.lang.OutOfMemoryError: bitmap siz
  5. android中关于tools:context="activity n
  6. Application Fundamentals--Processes an
  7. [android]动态查询手机内存
  8. [Android]把busybox上所有命令映射出来;
  9. AndroidContentProvider ContentResolver
  10. 2013.03.19(4)———activity ListView点击