android 拍照

Android拍照的方式:调用系统相机、自定义 Camera 相机、相册、拍照 阅读详情
方法1.调用api拍照并保存
拍照takepicture
package com.example.takepicture;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Display;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.SurfaceHolder.Callback;
import android.widget.Button;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {

	
	private Button mButtonFocus;
	private Button mButtonTake;
	private View mLayout;
	private SurfaceView mSurfaceView;
	private Camera camera;
	
	private final static String TAG="takepicture";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		
		Window window =getWindow();
	    requestWindowFeature(Window.FEATURE_NO_TITLE);//没有标题
	    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏


	    
	    setContentView(R.layout.activity_main);
	    
	    
	    mButtonFocus =(Button) findViewById(R.id.buttonfocus);
	    mButtonTake =(Button) findViewById(R.id.buttontake);
	    mSurfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
	    
	    
	    mSurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
	    mSurfaceView.getHolder().setFixedSize(176, 144);
	    mSurfaceView.getHolder().setKeepScreenOn(true);
	    
	    mSurfaceView.getHolder().addCallback(new SurfaceCallBack());
	    
	    
	    
	    mButtonFocus.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				camera.autoFocus(null);
				
				
			}
		});
	    

	    
	    
	    
	    mButtonTake.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				camera.takePicture(null, null, new MyPictureCallBack());
			}
		});
	    
	    
	    
	}
	
	
    
   private  final class MyPictureCallBack implements PictureCallback
    {

		@Override
		public void onPictureTaken(byte[] data, Camera camera) {
			// TODO Auto-generated method stub
			
			
			try {
				
				File jpgFile = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");
				
				Log.e(TAG, jpgFile.getName());
				FileOutputStream outStream = new FileOutputStream(jpgFile);
				
				outStream.write(data);
				outStream.close();
				
				camera.startPreview();
			} catch (Exception e) {
				// TODO: handle exception
			}
		}
    	
    	
    }
	
	private final class SurfaceCallBack implements Callback {

		@Override
		public void surfaceCreated(SurfaceHolder holder) {
			
			try {
				
			camera =Camera.open();
			Camera.Parameters param = camera.getParameters();
			Log.i(TAG, param.flatten());
			
			param.setPreviewSize(800, 480);
			param.setPreviewFrameRate(5);
			param.setPictureSize(1024, 768);
			param.setJpegQuality(80);
			camera.setParameters(param);
			camera.setPreviewDisplay(holder);
			camera.startPreview();	
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

		@Override
		public void surfaceChanged(SurfaceHolder holder, int format, int width,
				int height) {
			// TODO Auto-generated method stub

		}

		@Override
		public void surfaceDestroyed(SurfaceHolder holder) {
			// TODO Auto-generated method stub

			if(camera != null)
				camera.release();
		}

	}
	
	

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}






	@Override
	public boolean onTouchEvent(MotionEvent event) {
		// TODO Auto-generated method stub
		if(event.getAction()==MotionEvent.ACTION_DOWN)
		{
			mLayout =(View)	findViewById(R.id.buttonlayout);
			mLayout.setVisibility(ViewGroup.VISIBLE);
			
			return true;
		}
		
		
		
		return super.onTouchEvent(event);
	}

}




方法2 调用activity拍照并保存
CameraIntentDemo
Android——调用摄像头拍照 上传头像的简单原理 阅读详情

相关推荐

[Unity][Android]安卓手机设备拍照

SimpleActivity.java onClick CustomHelper onClick

BuladeMian的博客,菜得抠脚,菜得真实 911

Android Camera开发系列(上)——Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片

Android Camera开发系列(一)——Camera的基本调用与API实现拍照功能 最近也是在搞个破相机,兼容性那叫一个不忍直视啊,于是自己翻阅了一些基本的资料,自己实现了一个相机,虽然相机这东西,兼容性不敢恭维,但是用到的地方确实很多,所以今天,我们就一起来学习一下吧 一.Camera的启动方式 1.调用系统方式 2.自定义相机 二.调用系统相机 喜闻乐见,调用系统相机是十

刘桂林的博客 1万+

安卓拍照、裁切、选取图片实践

安卓拍照、裁切、选取图片实践:适配Android 10、11储存

silencefly的博客 1622

Android多媒体实现拍照和获取照片

以下代码是Android应用开发中用于AndroidManifest.xml文件的一部分,它声明了应用对硬件和权限的需求。

m0_74174723的博客 2834

Android 实现拍照功能,并将图片保存到本地存储

前言: 实现拍照功能的主要步骤: 创建照相机对象 设置相机参数 对照片预览 照片拍摄 获取照相机所得到的图片数据,从而可以进行下一步的活动,例如保存到本地存储,进行数据压缩,通过可视化组件显示。 停止照相 首先是布局页面activity_camera_demo.xml,用户点击进来后,通过设置完相应的参数后,对摄像头得到照片进行预览,通过TextureView实现 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xml

路宇的博客 1万+

安卓定时拍照应用开发完全指南

简介:安卓定时拍照功能结合了摄影和编程技术,常用于记录连续变化的场景。开发者创建此功能,记录植物生长,利用华为P9p测试。本文将探讨实现该功能所需的关键知识点,包括安卓编程基础、权限管理、相机API、定时任务、文件操作、用户界面、通知与服务、设备兼容性、图片处理、数据持久化和异常处理等。

weixin_42181686的博客 1057

Android相机实况模式,安卓实况拍照怎么用

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。以小米手机为例,安卓实况拍照的使用方法:1、进入相机,直接按快门进行拍照。或者点击想要拍摄的地方先进行对焦然后再次点击对焦的地方进行快门操作。2、直接按音量键进行快门操作。具体设置方法:进入相机设置—音量键功能—选择快门。3、进入相机页面,左上角有闪光灯设置,可以在这里对是否开启闪光灯进行设置。4、右上角有个HDR也就是“高动态范...

weixin_29205373的博客 1万+

知识的定义与分类体系详解 - 从零基础到专业理解

知识的定义与分类体系详解 - 从零基础到专业理解

engchina的专栏 4363

android 树莓派 图片,安卓树莓派的拍照

说到树莓派,不能忽略其小小的拍照功能,在谷歌官方的Demo中,有一个项目涉及到了拍照,具体实现是一个门铃的功能:当“门铃”按下时,在门上方的“摄像头”会抓拍下站在门口的的人,并通过谷歌的云平台及其数据库发送到与树莓派相关联的安卓手机。从而完成整个步骤。申请谷歌云端平台可以免费试用,但试用之前,需要填写一个有效的付款方式,国内的话需要VISA,或者其他外币卡付款方式谷歌云平台有条件的小伙伴,可以尝试...

weixin_30234101的博客 267

成本会计(第九版)王忠孝课后习题答案解析

在掌握了基础知识之后,我们还需要培养自己的实际操作能力。此外,在学习过程中,遇到困难时,要及时向老师、同学请教,不要害怕暴露自己的不足。三人行,必有我师,每个人都有值得学习的地方。首先,我们需要认真阅读教材,把基础知识掌握牢固。在这里,我建议大家使用《成本会计(第九版)》的配套练习册,这样可以帮助我们检查学习效果。同时,网上的一些优质课程和论坛也是不错的学习资源,例如网易云课堂、中国大学MOOC等。别担心,这里我给大家推荐一些实用的学习资料和方法,帮助你更好地掌握这门课程。出版社: 大连理工大学出版社。

weixin_58833001的博客 1888

紫光PG2L100H平台DDR3 IP核调试实战:从AXI接口到状态机设计的避坑指南

本文详细介绍了在紫光PG2L100H FPGA平台上调试DDR3 IP核的实战经验,重点解析了AXI接口的特殊行为和状态机设计的关键技巧。通过具体代码示例和调试方法,帮助开发者规避常见陷阱,实现高性能DDR3控制器设计,达到1.2GB/s的稳定带宽。

weixin_28717969的博客 218

Android安卓拍照点击保存后无法返回

Android安卓拍照点击保存后无法返回 Android安卓调用系统拍照,点击拍照,弹出保存按钮,点击保存保存按钮。   有的机器就直接返回到了上一页。但是有的 4.1.1机器,依然在当前界面,继续拍照 很可能是  屏幕横向纵向切换的问题。 切换后。上一页 destory了。然后重新oncreate。然后又进入拍照了 在activity的xml

icewst的专栏 3539

2023-07-04 Fast-Lio论文中公式(6)与BCH公式中近似雅可比公式的一致性推导

将(1)式代入(6)式,就有。

wmorries的博客 475

OCR--苹果ios安卓android身份证拍照扫描识别sdk

一、ios安卓android身份证拍照扫描识别sdk应用背景   这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果手动去输入身份证号码和姓名,速度非常慢,且用户体验非常差。为了提高在移动终端上输入身份证信息的速度和准确性,我们开发出ios安卓android身份证拍照扫描识别sdkSDK,以满足各行业应用需求,给用户带来更好的体验。只需将ios安卓android身份证拍照扫描识别sdkSDK集成到APP中,即可通过手机摄

langzihuitou890的博客 793

【Cadence软件技巧集萃】从Capture到Allergo——分布演示从原理符号导出到网络表

Cadence软件功能多样、性能强大,但是使用起来颇费步骤,尤其是从原理图到网络表的导入步骤,没有经过上手实践还真不一定一次就能搞定哩。本文笔者用将分步演示:1、在Capture软件上绘制原理图;2、将原理图导出网络表;3、在Allergo软件上更新网络表;希望给予使用Cadence的读者有效的帮助1、本文简述了建立Capture项目的步骤,演示了调用元件符号库的方法,并绘制了电气原理图;2、针对加载元件封装库可能遇到的问题,做了排查步骤建议;

qq_33175704的博客 2534

数据结构课程设计C/C++版--美团餐馆预定信息的管理与分析 5 6

第5关:注销个人信息。

m0_62222486的博客 2119

android软件是真的吗,安卓手机拍照太假,苹果才够真实,真是这样吗

原标题:安卓手机拍照太假,苹果才够真实,真是这样吗随着科技的不断进步,现在手机的功能也随之越来越强大,而手机相机更是从最早的30万像素的摄像头,已经跃升到了现在的4800万像素,提升了160倍,其历时还不到20年。而人们对于手机拍照的要求经历了能拍到拍清楚,再到拍漂亮,而现在很多加入的各种算法,可以让人更漂亮,让月球更清晰,于是就有人不禁感慨“”安卓手机拍照太假,苹果才够真真实“”,事实是这样吗?...

weixin_42666036的博客 871

备战2025数学建模国赛(算法65):Fisher判别分析

在数学建模竞赛中,我们常常会遇到需要对研究对象进行分类或判断的问题。例如,根据西瓜的各类指标判断其好坏,根据经济数据判断一个国家的发展程度,或根据病人的医学影像特征判断其是否患病。这类“分类判别”问题,是建模竞赛中最常见的题型之一。Fisher判别分析(或称线性判别分析,LDA)作为一种经典的、有监督的降维与分类方法,因其模型简洁、可解释性强、计算高效而备受青睐。

YOLO 421

安卓 拍照、录像

通过调用系统接口,进行拍照和录像 示例demo下载 示例源码下载 package sc.demo.androidcarmera; import java.io.File; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import android.app.A...

暂无内容 983

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

安卓不预览拍照与后台拍照功能实现

安卓不预览拍照与后台拍照功能实现 去发现同类优质开源项目:https://gitcode.com/ 资源描述 本资源提供了一种在Android应用中实现无预览拍照及后台拍照功能的方法,并支持将拍摄的照片转换为竖屏格式,并保存至设备SD卡。通过调用摄像头API,开发者可以轻松集成这一功能,提升应用的拍照体验。 功能特点 不预览拍照:允许应用在不需要显示摄像头预览界面的情况下,直接拍照。 后台拍照:...

gitblog_06705的博客 707

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

拍照安卓项目

一.拍照 Empty Activity1.AndroidManifest.xml <uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permissio

m0_68456185的博客 1701

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

unity调用安卓拍照并裁剪返回图片路径

主要脚本 package xxx; import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphic...

Mediary的博客 632

安卓开发:使用手机拍照功能

概述 在安卓开发过程中,使用手机拍照功能的核心代码其实非常简单,仅仅只是一句呼唤系统Intent而已: Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 要是软件开发真的这么简单就好了,而且核心代码也仅仅只是核心代码而已。为了完成整个过程:调用手机摄像头、拍照、剪切照片、获取照片、处理照片,还是需要围绕核心

女儿控老徐的专栏 6334

Android简单实现相机拍照功能

1.本项目gradle-wrapper.properties使用distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.2-bin.zip2.本次使用camerax进行快速上手开发,故参照camerax文档${${${${${${${3.AndroidManifest.xml文件中添加所需要的权限,这个为静态权限</

whq343621668的博客 1747
上一篇: android设置窗口特性
下一篇: android 录像
luck_good
博客等级 码龄15年 58粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值