- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于android平台的相机调用的研究与应用
摘要
Google于2007年11月5日宣布的基于Linux平台的android系统-----首个为移动终端打造的真正开放和完整的移动软件。Android出身豪门,并以其完美的开放性获得了众多开发人员的青睐。在多媒体应用非常普及的今天,很多应用软件需要完成对手机内置相机的调用来实现软件的功能,在我们的左岸易记个人记账软件的储蓄罐模块中也需要实现调用手机内置摄像头的功能,本文正是在我们开发软件的基础上,对于android开发平台上对相机调用的一些认识和见解。内容主要有相机的调用、预览设置、图片设置及传输,并附上源码以供参考。
关键词 android;camera
正文
android平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。
android提供了操作摄像头的API,可以通过两种做法来使用:
通过Intent直接调用系统提供的照相机功能,复用它的拍照Activity,这是最简单和最方便的办法,因为你不需要考虑手机的兼容性问题,比如预览拍照图片大小等;
Intent intent = new Intent();
Intent.setAction(“android.media.action.STILL_IMAGE_CAMERA”);
startActivity(intent);
默认情况下,如果在intent中不做设置,也就是不写这部分:
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(Environment
.getExternalStorageDirectory(), camera.jpg)));
那么当从照相机Activity返回的时候,会带一个名为data的Bitmap对象。是照片的缩略图(这也是为什么有些照片会比较小的原因)。
如果写上面的代码,则不会返回名为data的对象。但是会按照指定的路径保存原始图片。
直接调用摄像头的API,自己编写类似取景框的Activity,这样灵活度更大,缺点是你需要考虑比较底层的东西。要知道android有多个版本,摄像头的分辨率也不一样,需要先获取当前相机的分辨率组合,然后再编写各种屏幕分辨率组合的布局。
以下是具体的代码解析:
import java.io.IOException;
import android.app.Activity;
import android.content.Context;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.AutoFocusCallback;
import android.hardware.Camera.PictureCallback;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.Window;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class CameraPreview extends Activity
{
private Preview preview;
private ImageView ivFocus;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
preview = new Preview(this);
setContentView(preview);
ivFocus = new Im
您可能关注的文档
最近下载
- 2020地产博物馆主题暖场活动策划方案.pdf VIP
- 部编版语文三年级上册第七单元习作《我有一个想法》课件.pptx VIP
- [计算机导论——以计算思维为导向(第4版)][董卫军 等]第6章 云计算与大数据基础.pptx
- 《慢性乙型肝炎防治指南》更新要点及解读.pptx
- 大学生安全教育之PPT第六章文化安全.pdf
- 2024 入团考试题库(含答案).pdf
- 2019BUSSINESS车展圣诞节主题活动策划方案.pdf VIP
- 机构信息化升级与数据共享解决方案.doc VIP
- 2023年6月全国大学英语CET四级真题和答案解析(全三套).pdf
- AQT4274-2016《局部排风设施控制风速检测与评估技术规范》(AQT 4274-2016).pdf VIP
文档评论(0)