我在做Android照相机研究时曾写过关于照相机摄像头的成像研究报告,在此我对报告重写,以作为照相机竖屏问题研究的讨论引导,起抛砖引玉作用。

经过我的查证和实验,可以证实:Android提供的SDK(android.hardware.Camera)里大概不能正常的使用竖屏(portrait layout)加载照相机,当用竖屏模式加载照相机时会产生以下情况:1. 照相机成像左倾90度(倾斜);2. 照相机成像长宽比例不对(失比)。之所以是“大概”,原因是因为可能可以通过一些比较复杂的手段解决。如果以上成立,那为什么竖屏不能正常成像也就很显然了。为什么会产生这样的情况,请看下面的研究分析。

照相机在一般情况下是必须用landscape layout(横屏)的,可以证明,先写一个照相机(只要能preview就行),如果Manifest的activity里不加入android:screenOrientation="landscape",即默认了 android:screenOrientation="portrait"(竖屏),照相机preview时就会出现左倾90度的现象,并且失比。原因是这样的(我推测的),摄像头对照物的映射是Android底层固定了的,以landscape方式为正,并且产生大小为320*480的像,如果换成portrait方式了,摄像头还是产生320*480的像,然后分别对应的放入到一个480*320的屏内,显然会失比,然后根据竖、横屏的规则,就产生了左倾90度的情况(图例)。 为了进一步证实我对失比原因的推测,我照相机内加载的SurfaceView调成了320*213,比例大概是(320:213)*1.5=(480:320),所成像结果如愿的形成左倾但是没有失比的状况,这就证实了我的想法。

综上可以看出,左倾是因为摄像头映射产生的,而失比是由于像素比例映射产生的。

转载http://hi.baidu.com/juwend/blog/item/9977a8f69dff2229730eec6b.html

更多相关文章

  1. Android播放照相机声音
  2. Android(安卓)实现拍照功能
  3. Android(安卓)实现拍照功能
  4. Android自定义相机,切换前后摄像头,照相机拍照
  5. android Camera摄像头竖屏显示
  6. Android(安卓)调用手机系统照相机拍照
  7. Android中照相机的使用
  8. Android(安卓)照相机打开方法
  9. android视频录制

随机推荐

  1. 聊聊 Android(安卓)开发的现状和思考
  2. [Android]设备中的分区信息详解
  3. 编写优美Android注释的常用语法
  4. Android(安卓)23以下 checkSelfPermissio
  5. android oauth 微博客户端 架构一
  6. android中常见的网络框架
  7. android的hashmap 原理以及源码探究
  8. Android关于显示悬浮窗权限的转载
  9. 【Sublinux】Station P1在Android上使用P
  10. 为Android虚拟设备(AVD)增加物理键盘支持