转自:http://blog.chinaunix.net/space.php?uid=22342564&do=blog&id=3032871

在用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通过HttpURLConnection获取JSON并进行UI更新
  2. Android设置launchMode为singleTask的Activity怎么刷新页面内容
  3. TrafficStats ------- Android流量统计类的使用
  4. Android(安卓)GreenDao数据库—基础详解
  5. [Android]Service和Activity双向通信的两种方式
  6. 模拟获取android root权限
  7. Android(安卓)O 绑定SurfaceFlinger到大核
  8. 获取不到或者不更新intent传递的数据
  9. Android之 自定义属性 的使用

随机推荐

  1. android wifi hotspot
  2. ViewPager做出广告轮播特效
  3. 深入理解Notification机制
  4. listView分割线
  5. Android(安卓)UI编程之自定义控件初步(上)
  6. android aidl(android studio)
  7. 【Android开发】- HelloWorld
  8. AT91G45——Android2.2移植补丁
  9. 知识点笔记
  10. Android的各种Drawable