自定义相机

1. 需求:

自定义相机拍照模式,拍完一张照片后,继续停留在拍照的界面,同时显示所拍照的图片,提供删除功能!只有用户点击退出,将所有的照片显示!样例如下图0.1所示

图片

同时要求如下:

  • 拍照区域占整个屏幕高度的一半
  • 提供反转摄像,截图只取除黑色边框的区域,要求截图的高宽比为0.7

2. 思路

页面的实现思路:整体使用相对布局,使用surfaceView控件,将照相显示在surfaceView所属的holder中,由于黑色的边框高度占整个屏幕的0.1比例,所以使用自定义绘图的控件,动态绘制!拍完照之后图片展示用户recylerView的横向线性布局能够水平滑动!
业务的实现思路:
  • 体验注意点:拍照时候的相机的预览和拍照的宽高比(rate1)的设置要与屏幕的宽高比(rate2)不一致,否则在照远景和自拍时需要离的很远!
  • 这就要求在手机屏幕上不能全屏显示摄像,要进行动态计算当前手机屏幕的宽高比,在相机预览和拍照参数设置时,选取与当前手机宽高比不一致的屏幕分辨率.例如1080*1920的宽高比为0.5625,根据打印遍历的参数选取以后的宽高比:0.75
  • 既然rate1和rate2不一致,在拍完照片获取图像的字节数组byte[],将byte[]转换成对应bitmap,注意需要设置Opinions的sampleSize“sampleSize介绍点击”进行缩小照片的大小,但是图片宽高比例不会变!
  • 在拍照图片截取时:由于显示的照相宽高比为0.75,不是全屏显示,所以相同图片的黑色边界占整个屏幕的高度为0.1,但是占摄像屏幕显示高度的要大于0.1,所以在生成照相的bitmap基础上截取图片时的纵坐标(y)的值需要除以0.75。

源码点击下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值