展会信息港展会大全

Android游戏开发学习笔记(四):Camera图像采集
来源:互联网   发布日期:2015-09-29 10:16:48   浏览:946次  

导读:一、为相机添加权限。在AndroidManifest.xml文件的</application>之后,添加相机使用的权限:<uses-permission android:name="a...

一、为相机添加权限。在AndroidManifest.xml文件的</application>之后,添加相机使用的权限:

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

二、编写布局文件main.xml,代码如下:

<?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/surfaceView"

android:layout_width="320px"

android:layout_height="240px"

/>

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

>

<Button

android:id="@+id/btn1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="打开"

/>

<Button

android:id="@+id/btn2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="关闭"

/>

</LinearLayout>

</LinearLayout>

三、编写MainActivity.java代码。

package game.test;

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.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity implements SurfaceHolder.Callback {

Camera myCamera;

SurfaceView mySurfaceView;

SurfaceHolder mySurfaceHolder;

Button btn1, btn2;

boolean isPreview = false;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mySurfaceView = (SurfaceView) findViewById(R.id.surfaceView);

btn1 = (Button) findViewById(R.id.btn1);

btn2 = (Button) findViewById(R.id.btn2);

mySurfaceHolder = mySurfaceView.getHolder();

mySurfaceHolder.addCallback(this);

mySurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

initCamera();

}

});

btn2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

if (myCamera != null && isPreview) {

myCamera.stopPreview();

myCamera.release();

myCamera = null;

isPreview = false;

}

}

});

}

public void initCamera() {

if (!isPreview) {

myCamera = Camera.open();

}

if (myCamera != null && !isPreview) {

try {

myCamera.setPreviewDisplay(mySurfaceHolder);

myCamera.startPreview();

} catch (Exception e) {

e.printStackTrace();

}

isPreview = true;

}

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

// TODO Auto-generated method stub

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

// TODO Auto-generated method stub

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

// TODO Auto-generated method stub

}

}

作者 “Android学习心得”

赞助本站

人工智能实验室

相关热词: android开发 教程

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港