Android 实现拍照功能
展示效果图:
[这个是拍的相片]
CameraActivity.java
package com.example.videodisplay;import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class CameraActivity extends AppCompatActivity {private SurfaceView sfv;private Camera camera;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_camera);sfv = (SurfaceView) findViewById(R.id.sv_camera_surfaceview);sfv.getHolder().addCallback(new SurfaceHolder.Callback() {@Overridepublic void surfaceCreated(SurfaceHolder surfaceHolder) {//打开照相机camera = Camera.open();//给照相机设置参数Camera.Parameters parameters= camera.getParameters();//设置保存的格式parameters.setPictureFormat(PixelFormat.JPEG);parameters.set("jpeg-quality",85);camera.setParameters(parameters);try {camera.setPreviewDisplay(sfv.getHolder());//开启预览camera.startPreview();} catch (IOException e) {e.printStackTrace();}}@Overridepublic void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {}@Overridepublic void surfaceDestroyed(SurfaceHolder surfaceHolder) {//关闭}});}public void takePhoto(View view){//拍照camera.takePicture(null, null, new Camera.PictureCallback() {@Overridepublic void onPictureTaken(byte[] bytes, Camera camera) {//将字节数组转成图片Bitmap bitmap=BitmapFactory.decodeByteArray(bytes,0,bytes.length);try {FileOutputStream fos=new FileOutputStream("/mnt/sdcard/360Video/Camera_"+System.currentTimeMillis()+".png");bitmap.compress(Bitmap.CompressFormat.PNG,85,fos);camera.stopPreview();camera.startPreview();} catch (FileNotFoundException e) {e.printStackTrace();}}});}}
activity_camera.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.videodisplay.CameraActivity"><SurfaceView
android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/sv_camera_surfaceview"/><Button
android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="拍照"android:onClick="takePhoto"/>
</RelativeLayout>
最后的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Android 实现拍照功能相关推荐
- Android添加拍照功能,Android相机开发(二): 给相机加上偏好设置
Android Camera Develop: add settings to camera app 概述 继上一篇实现了一个最简单的相机APP后,本篇主要介绍实现相机的各种偏好设置,比如分辨率.闪光 ...
- Android添加拍照功能,Android开发实现拍照功能的方法实例解析
本文实例讲述了Android开发实现拍照功能的方法.分享给大家供大家参考,具体如下: 解析: 1)判断是否有摄像头checkCameraHardware(this) 2)获得相机camera = Ca ...
- android 静默拍照功能,Android实现静默拍照功能
本文实例为大家分享了Android实现静默拍照功能的具体代码,供大家参考,具体内容如下 1.申请权限(6.0以后要动态申请) 2.创建相机工具类 CameraPreview: public class ...
- android中拍照功能介绍,Android实现拍照功能
大家好,这是一个简单的拍照功能,很简单的界面,一个显示图像区域SurfaceView一个"拍照"按钮.直接上代码! 1.CameraDemoActivity.java(主界面) p ...
- Android手机拍照功能实现
1.Photo.xml文件设置布局空间:ImageView 和 Button 实现点击按钮显示照片 <?xml version="1.0" encoding="u ...
- android 小米拍照功能,iQOO和小米9到底拍照谁更强之iQOO手机拍照功能详细评测
iQOO和小米9到底拍照谁更强之iQOO手机拍照功能详细评测 2019-04-02 10:51:35 8点赞 13收藏 20评论 iQOO作为vivo子品牌一上市就以超强配置和超高性价比引爆市场,作为 ...
- Android一键拍照功能
今天分享的是用系统自带的相机实现一键拍照功能. "` public class MainActivity extends AppCompatActivity { private static ...
- 三星android one 拍照功能,三星One UI 3.1体验:更好用了,也更注重隐私了
三星此前已正式发布新旗舰Galaxy S21系列手机.作为一款主打移动影像的综合旗舰手机,三星Galaxy S21系列手机不光拥有强大的硬件配置,其全面且专业的影像配置也备受用户青睐. 除了给力的硬件 ...
- Android添加拍照功能,Android自定义相机,添加水印
很多app都要求自定义一个相机,类似违章查询拍照,美图相机之类的应用都要求自定义相机,网上的例子大多数我也看过,很多例子是有坑的,存在各种各样的问题,常见的就是问题就是适配性很差,这里我分享一下我做的 ...
最新文章
- Python绘制桑基图
- 怎么往integer型数组添加数据_用户日活月活怎么统计 - Redis HyperLogLog 详解
- leetcode算法题--句子中的有效单词数
- 【软考-软件设计师】计算机系统知识概览
- 用python自己做游戏_练习项目20:使用python制作游戏(中)
- python Iterable
- Linux怎样创建FTP服务器--修改用户默认目录-完美解决 - 费元星
- 【系统分析师之路】第九章 软件工程(上)
- Allegro走等长线设置
- 软考高项优秀范文——论信息系统项目的风险管理
- 不是人人都懂的学习要点
- 实例分割新作——Instances as Queries
- bios属于计算机软件系统吗,装系统必须知道的BIOS,到底是什么?
- 电子护照阅读器便捷通行管理系统
- UDF函数maven工程出现:Missing artifact javax.jdo:jdo2-api:jar:2.3-ec或xsi:schemaLocation=http://maven.apach
- 硬盘维修彻底揭密 新手必读
- 音频处理 windows10下python三方库librosa安装
- Three.js + React + Echart(折线图 光线流动效果,柱状图数据动态更新动画) + Svga-Web应用之数据大屏(适配1920*1080 2560*1440 3840*2160)
- 当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
- 2022年全球市场硬化疗法总体规模、主要企业、主要地区、产品和应用细分研究报告