به نام خدا.امروز میخواهیم کار با دروبین ها رو در برنامه نویسی اندروید شروع کنیم،کار با دوربین ها (Camera) در اندروید خیلی ساده است در این پروژه باهم با نحوه کارکردن با دوربین در محیط برنامه نویسی و کدنویسی اون بیشتر اشنا میشیم.درو شروع کار یک دکمه بروی لاهی خودم می کشم،وظیفه این دکمه فعال کردن دوربین با استفاده از اینتنت هست. بعد از قرار دادن دکمه یک Imageview بروری لایه خودم قرار میدیم و مقدار layout_width رو fill_parent قرار دادم تا عرض نمایشگرعکس کامل باشه و مقدار layout_height رو match_parent قرار دادم تا خودش رو با دکمه و لایه مچ کنه.سوالی که ممکنه برای دوستان پیش بیاد اینکه خاصیت layout_below کارش چیه؟این خاصیت وظیفه داره که Imageview رو در زیر باتن قرار بده، میبینید که ادرس باتن هم در مقدار دهی خاصیت نوشته شده.در فرهنگ لغت below به معنی زیر و پایین است.

کار با دوربین در اندروید

کدهای کامل بخش 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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="27dp"
android:text="aks ghreftan" />

<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp" />

</RelativeLayout>

 بعد از طراحی لایه برنامه میریم به بخش MainActivity.java و نوشتن کدهای جاوای برنامه.میبینید که من در بالای متد onCreate و در قسمت شروع دستور public class MainActivity extends Activity یک مقدار ثابت برای دوربین تعریف کردم تا هر وختی که اکتویتی بالا اومد برنامه اماده اجرا بشه.بعد ایمیج ویو (Imageview) رو به صورت گلوبال (global)  تعریف کردم تا در همه قسمت های برنامه مورد استفاده باشه.کدهای کامل بخش MainActivity.java

public class MainActivity extends Activity {

private static final int CAMERA_REQUEST = 1;

ImageView image;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button photoButton = (Button) findViewById(R.id.button1);
image = (ImageView) findViewById(R.id.imageView1);

photoButton.setOnClickListener(new OnClickListener() {

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


Intent cameraIntent = new  Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);

}
});

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
if (requestCode == CAMERA_REQUEST) { 
Bitmap photo = (Bitmap) data.getExtras().get("data"); 
image.setImageBitmap(photo); 

} 
}

 می بینید که دکمه برنامه رو معرفی کردم بعد از اون هم ایمیج ویو.در ادامه نوبت به نوشتن یک رویداد کلیک برای دکمه است که با دستور setOnClickListener  کاملش میکنم.در قسمت بعد نوشتن اینتنت هست که اطلاعات رو از برنامه بگیره و به MediaStore بفرسته، بعد با دستور startActivityForResult اینتنت رو به دوربین ارجا میدیم تا فعال بشه.سپس یک متد جیدی ایجاد میکنیم به اسم onActivityResult تا اطلاعاتی رو که از دوربین میگیره رو به فایل تصویری تبدیل کنه و در Imageview نمایش بده.

دانلود فایل Apk پروژه دوربین                      دانلود سورس پروژه دوربین