最近得到了一个需求,在后台拍照并保存

public void onTakePhotoClicked() {

final SurfaceView preview = new SurfaceView(this);

SurfaceHolder holder = preview.getHolder();

// deprecated setting, but required on Android versions prior to 3.0

holder.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拍照功能无预览,Android 无预览拍照相关推荐

  1. Android打电话功能权限报错,Android实现简单的拨号器功能

    简易拨号器的制作方法,具体如下 一.布局构造 android:layout_width="match_parent" android:layout_height="mat ...

  2. mix2s android p功能,小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址

    原标题:小米MIX2S升级Android P教程 小米mix2s安卓9.0下载地址 谷歌今天正式开启了Android P的测试,如果没多大问题的话就是之后会发布的Android 9.0了,比较惊喜的是 ...

  3. android 发帖功能,GitHub - qiaop/android-post: Android图文发帖与浏览

    Android图文发帖与浏览 简述 很多的社交类项目中都有类似论坛的发帖功能,在探索了很多的实现方式之后找到了一种最为简单的实现. 功能非常丰富,核心文件只有5个: RichEditor.java e ...

  4. android 投票功能,腾讯新闻Android客户端更新 加入投票功能

    腾讯近日更新了其应用<腾讯新闻>安卓版,加入了新闻专题,投票两大新功能,同事还优化了用户界面,大家在浏览各类新闻方面又有了新的选择. 新版特点: 1.新闻专题:热门新闻专题呈现,聚合浏览, ...

  5. android 设置功能,NDK 使用入门  |  Android NDK  |  Android Developers

    原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 Activity 和访问实体设备组件,例如传感器和触摸 ...

  6. android ota功能,支持 OTA 更新  |  Android 开源项目  |  Android Open Source Project

    为支持无线下载 (OTA) 更新,引导加载程序必须能够在启动期间访问恢复 RAM 磁盘.如果设备使用未经修改的 AOSP 恢复映像,引导加载程序会读取 misc 分区的前 32 个字节:如果数据与 b ...

  7. android 新闻功能列表,news: 用Android基本技术实现的新闻App

    News App git clone https://github.com/hjzf/news.git 项目描述: 一个Android开发基础学习阶段的新闻App实战项目 开发思路: 设计的缺陷1: ...

  8. android讨论功能,集成融云Android SDK实现在群聊/讨论组中@人的功能

    集成融云Android SDK实现在群聊/讨论组中@人的功能 可以确定的是融云SDK本身不提供@的功能,需要自定义实现. 在实现这个功能时,基本模仿微信的做法: 在列表中显示有人@了你 通知显示有人@ ...

  9. android日记本功能界面图片,基于android的日记本的设计和开发.ppt

    基于android的日记本的设计和开发 基于android的日记本的设计与开发 指导教师:闫宇帅 答辩人:廉若榕 毕业答辩 2014年5月18日 背景 手机的发展给人们的生活带来了极大的便利.以往,我 ...

  10. android付款功能,Qpay,利用 Android 新特性,把所有付款方式放在一起 | App+1

    应用快捷方式(App Shortcuts)是 Android 7.1 引入的众多新特性之一,利用这一特性,我们只需长按应用图标,即可通过在弹出的快捷方式列表进行操作.这一特性类似 iOS 设备上的 3 ...

最新文章

  1. Spark DataFrameDataSet
  2. 白话Elasticsearch01- 结构化搜索之使用term query来搜索数据
  3. Lucene.Net学习
  4. p怎么调用python的实例属性_Python中类的声明,使用,属性,实例属性,计算属性及继承,重写...
  5. 关于idea Tomcat部署的一个小坑
  6. 关于微软的VB和C#:为何Basic需要存在,为何VB如此像C#,为何两者不合并等
  7. java arraystoreexception_java基础面试
  8. nodejs应用在linux服务器中的部署
  9. 智慧能源管理系统解决方案
  10. Java爬坑--集合(二)List
  11. iOS 音乐播放 Swift
  12. 基于微信小程序的自驾旅游管理系统
  13. 数字孪生开启传统行业数字化转型升级之路
  14. 多元共线性检测 -- 方差膨胀因子(Python 实现)
  15. SpringBoot vue电影购票系统 电影院系统
  16. SQL注入进阶练习(一)一些进阶的注入方法
  17. 中文的括号和英文的括号区别_小括号、中括号、大括号,英文怎么说?
  18. Unity Editor修改分辨率
  19. 极光推送的别名alias和标签tag分别是什么意思
  20. python车牌识别系统抬杆_小区车牌识别自动抬杆系统安装要求

热门文章

  1. 可网管交换机的三种管理方式介绍
  2. 1G、3G都失败了,5G也会失败吗?
  3. 编写一个watchdog.sh脚本_五大原因!为何要将Jupyter Notebook转换为python脚本?
  4. 【MFC系列-第21天】GDI算法实战——过渡色
  5. 卷积码Viterbi译码算法基本原理及C语言实现
  6. python 字段升序,python 根据两个字段排序, 一个升序, 一个降序
  7. 64位内核第二讲,进程保护之对象钩子
  8. canvas绘制多边形
  9. lnmp pathinfo问题
  10. C#中FuncT,TResult的用法和Lambda表达式