android摄像头教程

本文概述

  • 了解Camera Intent和API的基本类
相机主要用于捕获图片和视频。我们可以通过使用相机API的方法来控制相机。
Android提供了通过两种方式在相机上工作的功能:
  1. 通过相机意图
  2. 通过相机API
了解Camera Intent和API的基本类我们将主要讨论四个类。
意图借助MediaStore类的2个常量,我们无需使用Camera类的实例即可捕获图片和视频。
  1. ACTION_IMAGE_CAPTURE
  2. ACTION_VIDEO_CAPTURE
相机它是相机api的主要类别,可用于拍摄图片和视频。
SurfaceView它表示实时摄像机的表面视图矿石预览。
MediaRecorder它用于使用摄像机录制视频。正如我们在前面的媒体框架示例中所看到的,它也可以用于记录音频文件。
相机意图的Android相机应用示例
在此示例中,我们正在编写简单的代码以使用相机捕获图像并使用imageview显示图像。
activity_main.xml【android摄像头教程】从面板上拖动一个imageview和一个按钮,现在xml文件将如下所示:
< RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" >< Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="Take a Photo" > < /Button>< ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@+id/button1" android:layout_alignParentTop="true" android:src="http://www.srcmini.com/@drawable/ic_launcher" > < /ImageView> < /RelativeLayout>

活动类让我们编写代码以使用相机捕获图像并将其显示在图像视图上。
package com.example.simplecamera; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity { private static final int CAMERA_REQUEST = 1888; ImageView imageView; public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) this.findViewById(R.id.imageView1); Button photoButton = (Button) this.findViewById(R.id.button1); photoButton.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST); } }); }protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST) { Bitmap photo = (Bitmap) data.getExtras().get("data"); imageView.setImageBitmap(photo); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; }}

输出:
android摄像头教程

文章图片

    推荐阅读