Thursday, March 8, 2012

Membangun Program Kamera di Android ( Building Camera Application in Android) Part 1

Ok, teman pada bahasan kali ini, kita akan coba membuat suatu program kamera di android, tanpa menggunakan intent.


1. Tahap Pertama

Tahap Pertama kita coba buat terlebih dahulu pada main.xml seperti dibawah ini:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >



    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <SurfaceView
        android:id="@+id/ViewKamera"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
       
        />

</LinearLayout>


2. Tahap Kedua Pada AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.buatkamera"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".BuatKameraActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

3. Tahap Ketiga Pada Activity

package com.buatkamera;

import java.io.IOException;

import android.app.Activity;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.*;
public class BuatKameraActivity extends Activity implements SurfaceHolder.Callback  {
    SurfaceView ViewKamera;
    SurfaceHolder surfaceHolder;
    Camera camera;
   
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        ViewKamera =(SurfaceView) this.findViewById(R.id.ViewKamera);
        surfaceHolder =ViewKamera.getHolder();
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        surfaceHolder.addCallback(this);
       
    }

    @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
        camera=Camera.open();
       
        try
        {
            camera.setPreviewDisplay(holder);
           
        }
        catch ( IOException exception)
        {
            camera.release();
        }
       
        camera.startPreview();
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        // TODO Auto-generated method stub
        camera.stopPreview();
        camera.release();
    }
}

Untuk lihat hasilnya sebagai berikut.



Untuk source code bisa didownload ( For Source Code You can download here)  disini
Ok, Nantikan Tutorial Berikutnya ya. ^_^