- Rohit Vobbilisetty What is the Camera API Capture Photos Capture - - PowerPoint PPT Presentation

rohit vobbilisetty what is the camera api
SMART_READER_LITE
LIVE PREVIEW

- Rohit Vobbilisetty What is the Camera API Capture Photos Capture - - PowerPoint PPT Presentation

- Rohit Vobbilisetty What is the Camera API Capture Photos Capture Videos Camera API - Android 2 Before starting Declare the permissions in the Android Manifest Camera Usage: <uses-permission android:name=


slide-1
SLIDE 1
  • Rohit Vobbilisetty
slide-2
SLIDE 2

What is the Camera API

 Capture Photos  Capture Videos

Camera API - Android 2

slide-3
SLIDE 3

Before starting

 Declare the permissions in the Android Manifest

Camera Usage: <uses-permission android:name="android.permission.CAMERA" /> Camera Features: <uses-feature android:name="android.hardware.camera" /> Camera Auto-Focus: <uses-feature android:name="android.hardware.camera.autofocus" /> Write to External Storage: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Camera API - Android 3

slide-4
SLIDE 4

Camera API

Overview

Primary API for controlling device cameras. Used to capture pictures and videos. Package: android.hardware.Camera Methods:

Camera.open() – Obtain an instance startPreview() – Starts the Camera preview takePicture() – Takes a picture stopPreview() – Stops the Camera preview release() – Releases the camera getParameters() – Zoom, Image Quality, Location Information

Camera API - Android 4

slide-5
SLIDE 5

Camera API – Capture Photo

 Detect and Access Camera  Create a Preview Class  Build a Preview Layout  Setup Listeners for Capture  Capture and Save Files  Release the Camera

Camera API - Android 5

slide-6
SLIDE 6

Camera API – Capture Photo

Detect and Access Camera

Check for an existing Camera and obtain reference. Detect

if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){ // this device has a camera return true; } else { // no camera on this device return false; }

Access Use camera.open() to obtain a reference to the Camera. An exception implies Camera is in use or does not exist.

Camera c = null; try { c = Camera.open(); // attempt to get a Camera instance } catch (Exception e){ // Camera is not available (in use or does not exist) }

Use Camera.getParameters() to obtain the Camera capabilities.

Camera API - Android 6

slide-7
SLIDE 7

Camera API – Capture Photo

Create a Preview Class and Preview Layout

Surface View (android.view.SurfaceView)

  • Provides a dedicated surface
  • Is Z- ordered, so useful for overlaying buttons
  • ver this surface

SurfaceHolder.Callback (interface)

(android.view.SurfaceHolder.Callback)

Receives information about changes to the surface (SurfaceView).

Methods: surfaceCreated() surfaceChanged() surfaceDestroyed()

Camera API - Android 7

slide-8
SLIDE 8

Camera API – Capture Photo

Create a Preview Class and Preview Layout

A Preview Class is a SurfaceView that can display live image data coming directly from the Camera. Create a class that extends SurfaceView and implements Surfaceholder.Callback.. Override the methods surfaceCreated(), surfaceChanged() and surfaceDestroyed() Preview Layout: Relative Layout with a Frame Layout to display the Camera Preview, and a Button which will trigger the capture.

Camera API - Android 8

slide-9
SLIDE 9

Camera API – Capture Photo

Setup Listeners for Capture Attach an OnClick Listener to the button. This listener should call takePicture(). NOTE: The method takePicture() requires the instance of PictureCallback as an argument.

Camera API - Android 9

slide-10
SLIDE 10

Camera API – Capture Photo

Capture and Save Files Create an instance of PictureCallback() and override the method onPictureTaken(). This method includes the logic to save the image to a file. Once the picture is taken, the method onPictureTaken() is called.

Camera API - Android 10

slide-11
SLIDE 11

Camera API – Capture Photo

Release the Camera

Release the Camera by calling Camera.release(), once the application does not require it or on application exit.

Camera API - Android 11

slide-12
SLIDE 12

Camera API – Capture Photo

Orientation and Rotation

The Camera Preview’s Orientation depends on the Orientation and Rotation of the device. Orientation (Portrait OR Landscape)

getResources().getConfiguration().orientation

Rotation

activity.getWindowManager().getDefaultDisplay().getRotation(); Returns: ROTATION_0, ROTATION_90, ROTATION_180, ROTATION_270

Set the Camera Preview Orientation using Camera.setDisplayOrientation(angle).

Camera API - Android 12

slide-13
SLIDE 13

Camera API – Capture Photo

Orientation and Rotation

Orientation: Landscape Rotation: ROTATION_270

Fix: Set the Camera Preview Orientation using Camera.setDisplayOrientation()

If(Orientation=Landscape & Rotation=ROTATION_270){ Camera.setDisplayOrientation(180). }

Camera API - Android 13

slide-14
SLIDE 14

Camera API – Capture Photo

Diagram

Camera API - Android 14

Camera Preview surfaceCreated() surfaceChanged() surfaceDestroyed() Activity

new CameraPreview(Camera) Button Event Handler

Layout FrameLayout and Button Device Camera

slide-15
SLIDE 15

Additional Features

 Zoom (API level 8)  GPS Data  Video Snapshot (API level 14)  Face Detection (API level 14)

Camera API - Android 15

slide-16
SLIDE 16

Demo

Camera API - Android 16

slide-17
SLIDE 17

References

 Android Developer – Camera API

http://developer.android.com/guide/topics/media/camera.html

 StackOverflow  Vogella.com – Camera API

http://www.vogella.com/articles/AndroidCamera/article.html

Camera API - Android 17

slide-18
SLIDE 18

Questions ??

Camera API - Android 18

slide-19
SLIDE 19

Thank You

Camera API - Android 19