Memanggil Fungsi Camera

Ohayou kawan …
Kali ini kita akan membahas bagaimana memanggil fungsi camera pada Android. Caranya cukup mudah, kita tinggal memanggil sebuah Intent bawaan dari fungsi internal Android.

Berikut langkahnya.

  1. Buka eclipse dan buat sebuah project baru.
  2. Buka AndroidManifest.xml dan buat permission sebagai berikut.
    <uses-permission android:name="android.permission.CAMERA"/>
    

    berikut source lengkapnya.

    <?xml version="1.0" encoding="utf-8"?>
    xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.is.cameratest"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="16" />
    
        <uses-permission android:name="android.permission.CAMERA"/>
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.is.cameratest.MainActivity"
                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. Sekarang buat desain aplikasinya. Buka activity_main.xml.
    <RelativeLayout xmlns:android="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/btnCamera"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="Camera"
            tools:ignore="HardcodedText" />
    
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/btnCamera"
            tools:ignore="ContentDescription" />
    
    </RelativeLayout>
    
  4. Sekarang buka MainActivity.java dan ketikkan kode berikut.
    package com.is.cameratest;
    
    import java.io.File;
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    
    public class MainActivity extends Activity {
    
    	Button buttonCamera;
    	Uri capturaImage;
    	ImageView imageView;
    
    	private static final int PICK_FROM_CAMERA = 1;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    
    		imageView=(ImageView)findViewById(R.id.imageView);
    		buttonCamera=(Button)findViewById(R.id.btnCamera);
    		buttonCamera.setOnClickListener(new View.OnClickListener() {
    
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    				File file=new File(Environment.getExternalStorageDirectory(),"img_"+String.valueOf(System.currentTimeMillis())+".jpg");
    
    				capturaImage=Uri.fromFile(file);
    
    				try {
    					intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, capturaImage);
    					intent.putExtra("return-data", true);
    
    					startActivityForResult(intent, PICK_FROM_CAMERA);
    				} catch (Exception e) {
    					// TODO: handle exception
    					e.printStackTrace();
    				}
    			}
    
    		});
    	}
    
    	@Override
    	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	      if (resultCode != RESULT_OK) return;
    
    	      Bitmap bitmap   = null;
    	      String path     = "";
    
    	      path    = capturaImage.getPath();
    	      bitmap  = BitmapFactory.decodeFile(path);
    
    	      imageView.setImageBitmap(bitmap);
    	}
    
    	@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;
    	}
    
    }
    
  5. Sekarang jalankan aplikasi kawan-kawan.4-9-2013 4-29-16 PM4-9-2013 4-30-19 PM

Selesai…

untuk memanggil Intent camera disini kita menggunakan action

Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

Oke kawan, untuk pertemuan kali ini ane akhiri sekian, semoga bermanfaat dan sampai jumpa di postingan berikutnya.

Download project latihannya disini.

Sayounara …

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s