(爱加密系列教程二十一)Android开发之初识Camera图像采集

爨习
• 阅读 2562

复制代码
/*

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

  • 北京Android俱乐部群:167839253

  • Created on: 2011-8-24

  • Author: blueeagle

  • Email: liujiaxiang@gmail.com

*/

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

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

即可。

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

<textarea readonly name="code" class="html">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"




<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="关闭"/>


</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&&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 && !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>

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

(爱加密系列教程二十一)Android开发之初识Camera图像采集

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


点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
浩浩 浩浩
4年前
【Flutter实战】初识Flutter
1.2初识Flutter1.2.1Flutter简介Flutter是Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语言开发App,一套代码同时运行在iOS和Android平台。Flutter提供了丰富的组件、接口,开发者可以很快地为Flutter添加native扩展。同时Flu
Stella981 Stella981
3年前
React—Native开发之 Could not connect to development server(Android)解决方法
React—Native开发之Couldnotconnecttodevelopmentserver(Android)解决方法参考文章:(1)React—Native开发之Couldnotconnecttodevelopmentserver(Android)解决方法(https://www.oschina.net/a
Wesley13 Wesley13
3年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Stella981 Stella981
3年前
Android Camera&Matrix图像变换
Camera与MatrixAndroidUI系统中,Camera充当着相机的角色,无论是系统成像还是UI绘制。都离不开Camera。但是在Android系统中,存在两种Camera,一种是视觉成像的(拍照、摄像),另一种是图形绘制(游戏、地图、3D),实际上两种也都离不开Matrix,所以本质上可以理解为,一个负责对相机以外
Stella981 Stella981
3年前
Android Camera 相机开发详解
在Android5.0(SDK21)中,Google使用Camera2替代了Camera接口。Camera2在接口和架构上做了巨大的变动,但是基于众所周知的原因,我们还必须基于Android4.系统进行开发。本文介绍的是Camera接口开发及其使用方法,通过本文章,你将全面地学会Camera接口的开发流程。本图文与GitHubPages原
Stella981 Stella981
3年前
Jetson TX1使用usb camera采集图像 (2)
该方法只启动usb摄像头importcv2importnumpyimportmatplotlib.pyplotasplotclassCamera:capcv2.VideoCapture(0)@staticmethoddefg
Stella981 Stella981
3年前
Android之自定义View学习(二)
Android学习系列Android之Room学习(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2FLInthunder%2Farticle%2Fdetails%2F108280542)
Stella981 Stella981
3年前
Android Camera开发:sdk 14+ 新特新 人脸识别
必要条件Camera人脸检测需要androidsdk14,当开启人脸识别特性时,android.hardware.Camera类的setWhiteBalance(String)\白平衡\,setFocusAreas(List)\一个或多个对焦区域\和setMeteringAreas(List)\指
Wesley13 Wesley13
3年前
Unity横屏
Android下发现Unity里面的Player设置,并不能完全有效,比如打开了自动旋转,启动的时候还是会横屏,修改XML添加以下代码<applicationandroid:icon"@drawable/ic\_launcher"                    android:label"@string/app\_name"