آموزش کار با دوربین در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش کار با دوربین (Camera) در برنامه نویسی اندروید خواهیم پرداخت در این آموزش یک دکمه (Button) و یک ImageView قرار دارد که با کلیک بروی Button دوربین برای شما نمایش پیدا می کند زمانی که عکس گرفته شود توسط bundle دریافت و در ImageView قرار خواهد گرفت آموزش دوربین در برنامه نویسی اندروید در برنامه نویسی بسیار مهم است در ادامه با ما همراه باشید.
 
ابتدای کار باید در layout خود یک Button و ImageView همانند زیر قرار دهید نام فایل برابر با main.xml است.

<?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" >
    <Button
        android:id="@+id/btn_camera"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Take image" />
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
</LinearLayout>

سپس وارد اکتیویتی مربوطه شده در اینجا نام آن برابر با CameraDemoActivity.java است و کدهای زیر را در آن قرار دهید.

package ir.programchi;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class CameraDemoActivity extends Activity {
       protected static final int CAMERA_REQUEST = 1;
       ImageView imgView;
       Button btnCamera;
       @Override
       public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.main);
              imgView = (ImageView) findViewById(R.id.imageView1);
              btnCamera = (Button) findViewById(R.id.btn_camera);
              btnCamera.setOnClickListener(new OnClickListener() {
                     @Override
                     public void onClick(View v) {
                           Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                           intent.putExtra(MediaStore.EXTRA_OUTPUT,
                                         MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
                           try {
                                  intent.putExtra("return-data", true);
                                  startActivityForResult(intent, CAMERA_REQUEST);
                           } catch (ActivityNotFoundException e) {
                           }
                     }
              });
       }
       protected void onActivityResult(int requestCode, int resultCode, Intent data) {
              if (requestCode == CAMERA_REQUEST) {
                     Bundle extras = data.getExtras();
                     if (extras != null) {
                           Bitmap photo = extras.getParcelable("data");
                           imgView.setImageBitmap(photo);
                     }
              }
       }
}

در بالا وقتی بروی دکمه کلیک می شود Intent مربوط به Camer باز شده سپس شما عکس خود را گرفته و دکمه back را فشار میدهید در این زمان وارد void ی به نام onActivityResult شده و دیتا (عکس) را با استفاده از Bundle دریافت می کنیم باید مقدار getParcelable برابر با data باشد آن را تغییر ندهید و در آخر در IamgeView قرار میدهیم.
 
این آموزش هم به فرجام رسید.
 
موفق و موید باشید.
 

مطالعه بیشتر