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

    作者:课课家教育更新于: 2016-11-08 17:35:34

       首先要在手机文件夹中找到相机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代码:

      

      

      面向android:="水平"

      android:layout_width="宽和"

      android:layout_height="宽和"

      

      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教程请关注课课家教育。

安卓 更多推荐

课课家教育

未登录

1