(Android)Membuat Camera Autofocus

image_rec

Selamat Hari Libur bila yang merayakan, hari minggu dan minggu katanya waktunya santai dan instirahat, kalo menurut saya itu hari yang menyebalkan, kegiatan hanya main sana sini, keluyuran (Bahasa Jawa) main yang gak jelas, itu kegiatan waktu kita masih di masa masa putih abu – abu, tapi cobalah merubah kegitan itu menjadi kegitaan yang bisa di bilang mengeuntukan bagi kita dan teman teman, Bermain sambil belajar lah jawabannya. seperti kalau bagi pecinta code code, berefresing di pantai membawa laptop, bermain di pegunungan membawa laptop, dan bercoding ria lah disana. saya pastikan itu mengasikan dan sangat memberikan hal postif pagi semuanya(mutualisme).

Kemaren saya baru mendapatkan beberapa kabar yang tidak menyenakkan, kalau di layar kaca bergambar (TV) itu semua berita Kong Subur, wah wah itu satu minggu mungkin satu bulan gak selesai. ya jangan dibuat bingung, karena itu pro dan kontra mereka. jangan pernah memikirkan semua itu menjadi bebeban bagi kita semua, keep sprit dan pantang menyerah dengan lingkaran kehidupan, karena semua itu akan berakhir bila tubuh ini tidak dapat bergerak.

“Orang yang mampu berfikir merupakan orang yang beruntung”, kata – kata itu saya dapatkan di mata kuliah bahasa indonesia, ada lagi kata – kata yang menarik yang di ucapkan bapak, “Orang yang baik merupakan orang yang berbahasa yang baik”. Semua itu logis dan dapat di benarkan kebenarannya.

Dari beberapa cerita di atas itu merupakan kegiatan saya seminggu di tempat kuliah dan di team kerja, banyak buanget ya, ya lah satu minggu itu semua tidak dapat di ceritakan dengan kata – kata, semua itu cerita yang dapat dikenang dan ditulis di sebuah diary saya, janganlah lupakan sejarah dan kejadikan kemarin, tapi janganlah melupakan kewajiban yang harus kita lakukan. Good Luck Teman – Teman.

Kita langung ke tema utama, tema kali ini saya akan membagi bagaimana membuat camera menjadi autofocus, tetapi tidak menutup kemungkinan kalau itu tergantung dengan Device yang mendukung, Tapi kalau Camera sudah mendukung itu semua dapat di wujudkan, karena tema ini saya angkat untuk mengikuti Event Inaicta Bersama teman teman, tema itu masih rahasia Team, tapi kalau hasilnya baik dan akan saya publish di Blog ini. semoga saja masuk Nominasi dan mejadi yang terbaik. amin

Create Project dengan nama CameraAutofocus

Buka File AndroidManifest,xml untuk membuka Permission Camera

Create XML file pada package res dengan nama Control.xml

 



Buka File main.xml

Buka file main.java

 package com.example.cameraaotufocus;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;

import android.app.Activity;
import android.content.ContentValues;
import android.content.pm.ActivityInfo;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.AutoFocusCallback;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Images.Media;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class CameraAutofocu extends Activity implements SurfaceHolder.Callback{
	Camera camera;
	SurfaceView surfaceView;
	SurfaceHolder surfaceHolder;
	boolean previewing = false;
	LayoutInflater controlInflater = null;
	
	Button buttonTakePicture;
	
	final int RESULT_SAVEIMAGE = 0;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_camera_autofocu);
		 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
	        
	        getWindow().setFormat(PixelFormat.UNKNOWN);
	        surfaceView = (SurfaceView)findViewById(R.id.camerapreview);
	        surfaceHolder = surfaceView.getHolder();
	        surfaceHolder.addCallback(this);
	        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
	        
	        controlInflater = LayoutInflater.from(getBaseContext());
	        View viewControl = controlInflater.inflate(R.layout.control, null);
	        LayoutParams layoutParamsControl 
	        	= new LayoutParams(LayoutParams.FILL_PARENT, 
	        	LayoutParams.FILL_PARENT);
	        this.addContentView(viewControl, layoutParamsControl);
	        
	        buttonTakePicture = (Button)findViewById(R.id.takepicture);
	        buttonTakePicture.setOnClickListener(new Button.OnClickListener(){

				@Override
				public void onClick(View arg0) {
					// TODO Auto-generated method stub
					camera.takePicture(myShutterCallback, 
							myPictureCallback_RAW, myPictureCallback_JPG);
				}});
	        
	        LinearLayout layoutBackground = (LinearLayout)findViewById(R.id.background);
	        layoutBackground.setOnClickListener(new LinearLayout.OnClickListener(){

				@Override
				public void onClick(View arg0) {
					// TODO Auto-generated method stub

					buttonTakePicture.setEnabled(false);
					camera.autoFocus(myAutoFocusCallback);
				}});
	    }
	    
	    AutoFocusCallback myAutoFocusCallback = new AutoFocusCallback(){

			@Override
			public void onAutoFocus(boolean arg0, Camera arg1) {
				// TODO Auto-generated method stub
				buttonTakePicture.setEnabled(true);
			}};
	    
	    ShutterCallback myShutterCallback = new ShutterCallback(){

			@Override
			public void onShutter() {
				// TODO Auto-generated method stub
				
			}};
			
		PictureCallback myPictureCallback_RAW = new PictureCallback(){

			@Override
			public void onPictureTaken(byte[] arg0, Camera arg1) {
				// TODO Auto-generated method stub
				
			}};
			
		PictureCallback myPictureCallback_JPG = new PictureCallback(){

			@Override
			public void onPictureTaken(byte[] arg0, Camera arg1) {
				// TODO Auto-generated method stub
				/*Bitmap bitmapPicture 
					= BitmapFactory.decodeByteArray(arg0, 0, arg0.length);	*/
				
				Uri uriTarget = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, new ContentValues());

				OutputStream imageFileOS;
				try {
					imageFileOS = getContentResolver().openOutputStream(uriTarget);
					imageFileOS.write(arg0);
					imageFileOS.flush();
					imageFileOS.close();
					
					Toast.makeText(CameraAutofocu.this, 
							"Image saved: " + uriTarget.toString(), 
							Toast.LENGTH_LONG).show();
					
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

				camera.startPreview();
			}};

		@Override
		public void surfaceChanged(SurfaceHolder holder, int format, int width,
				int height) {
			// TODO Auto-generated method stub
			if(previewing){
				camera.stopPreview();
				previewing = false;
			}
			
			if (camera != null){
				try {
					camera.setPreviewDisplay(surfaceHolder);
					camera.startPreview();
					previewing = true;
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

		@Override
		public void surfaceCreated(SurfaceHolder holder) {
			// TODO Auto-generated method stub
			camera = Camera.open();
		}

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

}

Yang membutuhkan APK nya ke blog ini ya http://arthdiputraanna.id

Run

Advertisements

Published by

jarcode

hello I am jarcode

117 thoughts on “(Android)Membuat Camera Autofocus”

      1. Ane juga gan,
        Ane bingung letak file androidmanifest.xml,apalagi yang main.java
        Ini emailnya:arhief.setyawan@gmail.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s