下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

如何在Android中创建相机app应用

作者:课课家教育     来源: http://www.kokojia.com点击数:1386发布时间: 2016-11-09 16:15:38

标签: Androidapp开发编程

   首先要在手机文件夹中找到相机Camera软件再按照官方文档,在按以下步骤进行操作:

     1、发现和访问相机-创建代码来检查相机和请求访问的存在。

  2、创建一个预览类——创建一个相机预览类SurfaceView延伸和实现theSurfaceHolder接口。这个类预览现场相机的照片。

  3、建立一个预览布局——一旦你相机预览类,创建一个视图布局包含预览和你想要的用户界面控件。

  4、设置监听器捕获-听众对你的界面控件连接到开始图像或视频捕获响应用户操作,如按一个按钮。

  5、捕获并保存文件,设置的代码捕获并保存照片或视频输出。

  6、释放相机——在使用相机,应用程序必须正确地释放它,供其他应用程序使用。

  1、检查设备是否有照相机

如何在Android中创建相机app应用_Android_app开发_编程

     java代码:

     检查设备是否存在照相机*/

  私人布尔checkCameraHardware(上下文语境){

  如果(context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){

  //这个设备有一个相机返回true;其他这个设备上没有相机返回错误,返回true;返回true;其他这个设备上没有相机返回错误

     2、得到一个照相机:

得到相机

    一种安全的方式获取来对象的实例,公共静态摄像头getCameraInstance(){相机c=零;尝试试图得到一个照相机实例捕获(异常e){相机不可用(在使用或不存在)返回c;//返回null如果相机不可用

  3、新建一个名为CameraPreview的类:

CameraPreview     包com.wuyudong.mycamera;

  进口java.io.IOException;

  进口Android.content.Context;

  进口android.hardware.Camera;

  进口android.util.Log;

  进口android.view.SurfaceHolder;

  进口android.view.SurfaceView;

  /**/*基本相机预览类

  公共类CameraPreviewSurfaceView扩展实现

  SurfaceHolder。回调{

  私有静态最终字符串标签=“CameraPreview”;

  私人SurfaceHoldermHolder;

  私人相机mCamera;

  公共CameraPreview(上下文语境,相机镜头){

  超级(上下文);

  mCamera=相机;

  //安装SurfaceHolder。回调时得到通知

  //底层表面创建和销毁。

  mHolder=getHolder();

  mHolder.addCallback(这个);

  //设置弃用,但需要在Android3.0版本之前

  mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

  公共空间surfaceCreated(SurfaceHolder持有人){

  //创建表面,现在告诉相机中分离出来的//预览。尝试{

  mCamera.setPreviewDisplay(持有人);

  mCamera.startPreview();

  }捕捉(IOExceptione){

  日志。d(标签,“错误设置相机预览:”+e.getMessage());

  公共空间surfaceDestroyed(SurfaceHolder持有人){

  //空的。照顾释放相机预览你的活动。

  公共空surfaceChanged(SurfaceHolder持有人,int格式,intw,inth){

  //如果你的预览可以改变或旋转,照顾这些事件。

  //确保停止预览之前调整或重新格式化。

  如果(mHolder.getSurface()==null){

  //预览表面不存在

  返回;

  //停止预览之前做出改变尝试{

  mCamera.stopPreview();

  }捕捉(异常e){

  //忽略:试图阻止一个不存在的预览

  //设置预览大小并做任何调整,或旋转

  //在这里重新格式化变化

  //开始预览新的设置尝试{

  mCamera.setPreviewDisplay(mHolder);

  mCamera.startPreview();}捕捉(异常e){日志。d(标签,“错误启动相机预览:”+e.getMessage());

     4、设置一个预览功能的布局,将原来布局文件中的内容替换成下面的代码:

xml/HTML代码  XML/HTML代码:

  <?xmlversion="1.0"encoding="utf-8"?>

  <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

  面向android:="水平"

  android:layout_width="宽和"

  android:layout_height="宽和"

  <FrameLayout

  android:id=“@+id/camera_preview”

  android:layout_width="宽和"

  android:layout_height="宽和"

  android:layout_weight="1"

  <按钮

  android:id=“@+id/button_capture”

  android:文本=“捕获”

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"

  android:layout_gravity="中心"

  5、在清单文件中加入android:screenOrientation=“景观”调整相机为横向拍摄

  6、在MainActivity中添加:

在MainActivity中添加

    公开课MainActivity延伸活动{私人相机mCamera;私人CameraPreviewmPreview;@Override

  公共空间onCreate(包savedInstanceState){super.onCreate(savedInstanceState);

  setContentView(R.layout.main);//创建一个实例的相机

  mCamera=getCameraInstance();//创建我们的预览视图并将它设置为我们的活动的内容。

  mPreview=newCameraPreview(这个,mCamera);

  FrameLayout预览=(FrameLayout)findViewById(R.id.camera_preview);preview.addView(mPreview);

     7、实现拍摄按钮的功能:

添加拍照回调方法

  (1)添加拍照回调方法

     私人PictureCallbackmPicture=newPictureCallback(){@Override

  公共空间onPictureTaken(byte[]数据,相机镜头){

  文件pictureFile=新文件(“/sdcard/”+System.currentTimeMillis()+".jpg");尝试{

  FileOutputStream安全系数=newFileOutputStream(pictureFile);fos.write(数据);fos.close();

  }捕捉(IOExceptione){日志。d(“标签”、“访问文件出错:“+e.getMessage());

  8、给拍照按钮添加注册事件:

添加注意事项

     //捕获按钮添加一个侦听器

  按钮captureButton=(按钮)findViewById(R.id.button_capture);

  captureButton.setOnClickListener(

  新的View.OnClickListener(){@Override公共空间onClick(查看v){

  //从摄像机获取图像mCamera。takePicture(空,空,mPicture)

     总结:只要按着步骤根据以上的方法在Android中创建相机app应用,涉及编程方面知识,建议大家操作过程中耐心完成,有兴趣挑战的小伙伴也可可试试喔!想了解更多AndroidApp教程请关注课课家教育。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程