我的第一篇博客:关于android的Camera在takePicture()时不回调onPictureTaken()方法
来源:互联网 发布:算法导论 第3版 pdf 编辑:程序博客网 时间:2024/06/05 06:33
在看书学习中,简单用到camera API去拍摄照片,但是在小米Note上运行时,卡在了拍摄界面,不动了,没有报错信息,可以知道是回调了Camera.ShutterCallback中的onShutter()方法,因为放了个进度条在显示,也有卡嚓声,后来各种谷歌和百度,看了很多页,改各个步骤也不能解决,后来通过搜索“不回调onPictureTaken()”关键字,看到有人遇到同样的问题,见地址:http://www.2cto.com/kf/201504/387110.html
经过修改,果然是parameters.setPreviewSize()设置了最大的Size的原因,并不是所有手机都是如此,红米就不会,问题如上面网址中所说,需要将setPreviewSize()设置成屏幕近似分辨率,而并不是设置成最大。
Camera.Parameters parameters=mCamera.getParameters();//设置近似屏幕的分辨率Size s=getCurrentScreenSize(parameters.getSupportedPreviewSizes());parameters.setPreviewSize(s.width, s.height);Size s2=getBestPictureSize(parameters.getSupportedPictureSizes(),s);parameters.setPictureSize(s2.width,s2.height);mCamera.setParameters(parameters);具体的getCurrentScreenSize()和getBestPictureSize()是参考他的代码的:http://www.2cto.com/kf/201504/387110.html
其中里面,我用到的设备屏幕分辨率的方法如下:
DisplayMetrics displayMetrics = new DisplayMetrics();getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);displayMetrics.widthPixels , displayMetrics.heightPixels
折腾了一整天+半天,终于解决了。
自从大学接触计算机以来,09年入学,13年毕业,干了两年测试,15年辞职在家学android,这是第一篇博客,特此小小mark一下!
0 0
- 我的第一篇博客:关于android的Camera在takePicture()时不回调onPictureTaken()方法
- 关于我的第一篇博客
- 关于前端我的第一篇博客
- 我在csdn的第一篇博客
- 我在CSDN的第一篇博客
- 我在CSDN的第一篇博客
- 我在CSDN的第一篇博客
- 我在CSDN的第一篇博客
- 我在CSDN的第一篇博客
- 我在csdn的第一篇博客
- 我在CSDN的第一篇博客
- 我在CSDN的第一篇博客
- 我在CSDN的第一篇博客
- 我的第一篇android博客
- 关于租约,关于我的第一篇技术博客
- 我的第一篇博客
- 我的博客 第一篇
- 我的第一篇博客
- 文件的读写操作和Internet中读取文件
- 黑马程序员--java笔记13--图形用户接口GUI
- pcduino v3(ubuntu)右下角的wifi小扇形不见了(已解决)
- SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新
- OC NSString类字符串拼接问题探究
- 我的第一篇博客:关于android的Camera在takePicture()时不回调onPictureTaken()方法
- FloatingActionButton
- sgu 252 Railway Communication
- requireJS入门二
- github开源社区代码学习目录
- Google Java编程风格指南中文版
- 批处理笔记
- 寻址方式 寄存器寻址方式 立即数寻址方式 存储器寻址方式: 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式 串操作寻址方式 I/O端口寻址方式
- 3Sum Closest