`
gowithbutton
  • 浏览: 43977 次
社区版块
存档分类
最新评论
阅读更多

    <h1>Android开发之初识Camera图像采集</h1>
/*

* Android开发之初识camera图像采集

* 北京Android俱乐部群:167839253

* Created on: 2011-8-24

* Author: blueeagle

* Email: liujiaxiang@gmail.com

*/

下面记录一个简单的相机的制作方法。

制作相机,首先需要添加照相的权限。添加方法是在AndroidManifest.xml文件中添加

<uses-permission android:name=” android.permission.CAMERA”>即可。

其次:修改布局文件:如下代码所示。

<textarea readonly name="code" class="html"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <SurfaceView
    android:id = "@+id/mySurfaceView"
    android:layout_width="320px"
    android:layout_height="240px">
    </SurfaceView>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
<Button
android:id="@+id/myButton" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="打开"/>
<Button
android:id="@+id/myButton2" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="关闭"/>
</LinearLayout>
</LinearLayout>
</textarea>再次,编辑代码,如下所示:

<textarea readonly name="code" class="java">/*
*  Android开发之camera图像采集
*  MyTestCamera.java
*  Created on: 2011-8-24
*  Author: blueeagle
*  Email: liujiaxiang@gmail.com
*/

package com.blueeagle;

import java.io.IOException;

import android.app.Activity;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;

public class MyTestCamera extends Activity implements SurfaceHolder.Callback{
    Camera myCamera;
    SurfaceView mySurfaceView;
    SurfaceHolder mySurfaceHolder;
    Button myButton1;
    Button myButton2;
    boolean isPreview = false;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mySurfaceView = (SurfaceView)findViewById(R.id.mySurfaceView);
        myButton1 = (Button)findViewById(R.id.myButton);
        myButton2 = (Button)findViewById(R.id.myButton2);
       
        mySurfaceHolder = mySurfaceView.getHolder();
        mySurfaceHolder.addCallback(this);
        mySurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        myButton1.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View v) {
initCamera();
}
        });       
        myButton2.setOnClickListener(new Button.OnClickListener(){

@Override
public void onClick(View v) {
if(myCamera!=null&amp;&amp;isPreview){
myCamera.stopPreview();
myCamera.release();
myCamera = null;
isPreview = false;
}
}
       
        });
    }
public void initCamera() {
// TODO Auto-generated method stub
if(!isPreview){
myCamera = Camera.open();
}
if(myCamera !=null &amp;&amp; !isPreview){
try{
myCamera.setPreviewDisplay(mySurfaceHolder);
myCamera.startPreview();
}
catch(IOException e){
e.printStackTrace();
}
isPreview = true;
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
</textarea><br>

如果在模拟器中运行,可以得到如图所示的情形。如果在真机上运行,则会打开摄像头,将实际的影响显现出来。关闭时,则定在关闭时的画面。这样基本可以完成了图像的采集。如果程序中对相机有要求的话,可以采用这种方式进行。

<img src="http://hi.csdn.net/attachment/201108/24/0_1314193114Jhd0.gif" alt="">

这个例子只是一个小demo。供深入学习参考用。

<br>

 
0
0
分享到:
评论

相关推荐

    IoT-Camera学习笔记之初识IoT-Camera

    IoT-Camera学习笔记之初识IoT-Camera

    Android初识之Activity组件

    在Android应用开发中,Activity是核心组件之一,它充当了用户界面的主要载体,与用户进行交互。本篇文章将深入探讨Activity的基本概念、生命周期以及如何在Activity之间传递数据。 首先,让我们了解一下Activity类...

    android开发入门教程

    第1章 掀起你的盖头来——初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 ...

    探索Android FrameWork底层开发视频全套

    2.Android开发环境搭建与编译 3.Android编译过程分析 4.android.mk初识 5.Android.mk学习1 6.Android.mk学习2 7.Android.mk学习3 8.Android启动课程大纲 9.Android启动模式 10.init启动分析 11.走入init启动脚本 12....

    名师讲坛:Android开发实战经典-程序代码

    全书共分为13章,包括认识Android、搭建Android开发环境、初识Activity、Android中的基本控件(上)、布局管理器、Android事件处理、Android中的基本控件(下)、数据存储、Android组件通信、多媒体技术、手机服务、...

    Android开发教程_013_初识Android Manifest 标清.flv

    Android开发教程_013_初识Android Manifest 标清

    《Google Android开发入门与实战》

    第1章 掀起你的盖头来——初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 ...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层...

    Android开发\深入浅出Android.pdf

    - **环境搭建**:开发者需安装Android Studio,这是官方推荐的集成开发环境(IDE),提供了全面的开发工具和功能。 - **流程详解**: - 下载并安装Android Studio。 - 配置Android SDK路径,确保SDK Manager可用。...

    《Google Android开发入门与实战》.pdf

    1. 初识Android:书中介绍了Android的历史和发展,强调了它作为一个开放平台对于个人开发者的重要性,包括通过开发应用参与大赛、在Android Market发布应用以获取收益和认可。此外,还介绍了Android模拟器的使用,以...

    深入浅出Android——Android开发经典教材

    3. Android应用的开发流程:从建立新工程、初识GUI界面的设计开始,介绍视图(View)、XML文件的创建和编辑,以及如何通过视觉化的界面开发工具来获取和存取识别符号等。 4. 程序流程的解读与实践:通过对程序流程的...

    初识Android-开发环境图文详解PPT

    在Android开发中,构建一个有效的开发环境是至关重要的第一步。...熟练掌握这些基本概念和操作,将为你的Android开发之路打下坚实的基础。通过不断的实践和学习,你将能够创建出更加优秀和功能丰富的Android应用程序。

    Android开发教程_006_初识XML布局 标清.flv

    Android开发教程_006_初识XML布局 标清

    android游戏开发教程

    - **历史背景**:初识Android这一章节简要介绍了Android系统的发展历程,强调了Android作为一个开放平台的重要意义,为后续章节提供了必要的背景信息。 - **核心概念**:本书后续章节将深入探讨与Android开发相关的...

    Android Dalvik虚拟机初识

    详细讲解了Android_Dalvik_虚拟机初始和架构方向,想了解Android dalvik虚拟机的值得一看。

    关于Android的开发报告

    #### 二、初识Android应用程序 Android应用开发主要采用Java语言。在Android应用程序中,有几个核心的概念非常关键: - **Activity**:类似于J2ME中的MIDlet,负责创建和管理用户界面窗口。一个运行中的Activity...

    [Android开发权威指南].李宁.扫描版.pdf

    第1章 初识庐山真面目 Android开发简介 第2章 工欲善其事 必先利其器 搭建和使用Android开发环境 第二部分 基础篇 第3章 千里之行始于足下 Android程序设计基础 第4章 我的UI我做主 用户界面开发基础 第5章 良好的...

Global site tag (gtag.js) - Google Analytics