Android中如何实现无预览拍照功能
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍"Android中如何实现无预览拍照功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android中如何实现无预览拍照功能"文章能帮助大家解
千家信息网最后更新 2025年02月23日Android中如何实现无预览拍照功能
这篇文章主要介绍"Android中如何实现无预览拍照功能"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Android中如何实现无预览拍照功能"文章能帮助大家解决问题。
代码如下:
public void onTakePhotoClicked() { final SurfaceView preview = new SurfaceView(this); SurfaceHolder holder = preview.getHolder(); // deprecated setting, but required on Android versions prior to 3.0holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); holder.addCallback(new SurfaceHolder.Callback() { @Override //The preview must happen at or after this point or takePicture fails public void surfaceCreated(SurfaceHolder holder) { Log.d(TAG, "Surface created"); camera = null; try { camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK); Log.d(TAG, "Opened camera"); try { camera.setPreviewDisplay(holder); } catch (IOException e) { throw new RuntimeException(e); } camera.startPreview(); Log.d(TAG, "Started preview"); //延时拍照 ThreadUtils.postOnUiThreadDelayed(new Runnable() { @Override public void run() { Log.e("zgj","开始拍照"); camera.takePicture(null, null, CameraService.this); } },5000); } catch (Exception e) { if (camera != null) camera.release(); throw new RuntimeException(e); } } @Override public void surfaceDestroyed(SurfaceHolder holder) {} @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {} }); WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); WindowManager.LayoutParams params = new WindowManager.LayoutParams( 1, 1, //Must be at least 1x1 WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 0, //Don't know if this is a safe default PixelFormat.UNKNOWN); //Don't set the preview visibility to GONE or INVISIBLE wm.addView(preview, params); } @Override public void onPictureTaken(byte[] bytes, Camera camera) { Log.e("zgj", "拍照结束"); File pictureDir = Environment.getExternalStorageDirectory(); if (pictureDir == null) { Log.d("zgj", "Error creating media file, check storage permissions!"); return; } try { String pictureName = "ssss.png"; File file = new File(pictureDir + "/pic/"); if (!file.exists()) { file.mkdir(); } file = new File(pictureDir + "/pic/" + pictureName); FileOutputStream fos = new FileOutputStream(file); fos.write(bytes); fos.close(); } catch (FileNotFoundException e) { Log.d("zgj", "File not found: " + e.getMessage()); } catch (IOException e) { Log.d("zgj", "Error accessing file: " + e.getMessage()); } }
关于"Android中如何实现无预览拍照功能"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
功能
知识
行业
不同
实用
代码
内容
实用性
实际
文章
方法
更多
案例
知识点
篇文章
资讯
资讯频道
过程
问题
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小学生网络安全教育记录内容
数据库报表数据同步
无锡去哪里学软件开发
软件开发项目管理规范文档
广元高密度存储服务器厂家
数据库前端开发内容
服务器上怎么修改默认浏览器
网络安全行业产品特点
数据库修改连接密码怎么修改
吃鸡哪个服务器好点
哪些属于网络安全事件
巴亚万网络技术
问道单机数据库导入
国内计算化学方法与软件开发
软件开发综合实训的报告
基层网络安全员
dnf服务器哪个最多人
创宇 网络安全
江苏pdu服务器电源可以定制吗
删除自动筛选数据库
湖北正规软件开发设施品质保障
webukey服务器管理
esm网络安全
scum僵尸多物资多的服务器
oracle数据库连接vip
北京绿榕网络技术有限公司
2016网络安全龙头股
嘉定区项目软件开发服务收费
数据库连接不上的解决方案
山东工业大学网络安全学院