Android的hardware包Camera类定制Camera

  次阅读 作者:智能小宝 来源:互联网 2015-09-29 10:09 我要评论(0)

Android自带的Camera应用虽然可以满足大多数情景,但是其灵活性上还有不足。但是Android允许我们定制自己的Camera。

Android的hardware包中有一个Camera类。这个类就是获取Camera服务的,可以定制Camera等。

可以通过open()方法获取其实例。

在使用这个类是需要在AndroidManifest.xml文件中加入相应的权限和特性

如:

<uses-permission android:name = "android.permission.CAMERA" />

<uses-feature android:name = "android.hardware.camera" />

<uses-feature android:name = "android.hardware.camera.autofocus" />

等。

本文实例:

package demo.camera;

import java.io.OutputStream;

import java.util.Iterator;

import java.util.List;

import android.app.Activity;

import android.content.ContentValues;

import android.content.res.Configuration;

import android.hardware.Camera;

import android.net.Uri;

import android.os.Bundle;

import android.provider.MediaStore;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

import android.widget.LinearLayout;

/**

* Android自带的Camera应用程序可以完成很多功能。但是当其不能满足我们需要的时候

* 我们可以定制自己的Camera。Android提供了Camera类来辅助我们实现自己的Camera。

* 这个例子就来定义一个自己的Camera

* 首先,在Manifest中需要引入权限<uses-permission android:name="android:permission.CAMERA"/>

* 我们需要用来存放取景器的容器,这个容器就是SurfaceView。

* 使用SurfaceView的同时,我们还需要使用到SurfaceHolder,SurfaceHolder相当于一个监听器,可以监听

* Surface上的变化,通过其内部类CallBack来实现。

* 为了可以获取图片,我们需要使用Camera的takePicture方法同时我们需要实现Camera.PictureCallBack类,实现onPictureTaken方法

* @author Administrator

*

*/

public class MyCamera extends Activity implements SurfaceHolder.Callback,Camera.PictureCallback{

public static final int MAX_WIDTH = 200;

public static final int MAX_HEIGHT = 200;

private SurfaceView surfaceView;

private Camera camera; //这个是hardare的Camera对象

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

this.setContentView(R.layout.camera);

surfaceView = (SurfaceView)this.findViewById(R.id.myCameraView);

surfaceView.setFocusable(true);

surfaceView.setFocusableInTouchMode(true);

surfaceView.setClickable(true);

surfaceView.setOnClickListener(new View.OnClickListener() {

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...