آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

رفتن به صفحه (برنامه) مربوط به دوربین گوشی (camera) و نمایش عکس گرفته شده، در یک ImageView در خود برنامه اندروید

در این مبحث، یک برنامه اندروید می سازیم که در آن، کاربر بر روی یک دکمه (Button) اشاره می کند و سپس به صفحه (برنامه) مربوط به دوربین گوشی (camera) هدایت می شود و در آنجا، چنانچه عکس بگیرد و بر روی دکمه save برای ذخیره عکس اشاره کند و در آخر، بر روی دکمه Back گوشی اشاره کند، عکس گرفته شده، توسط برنامه اندروید دریافت شده و در یک ImageView نمایش داده می شود.

فایل پروژه اندروید و همچنین فایل apk مربوط به آن را می توانید در انتهای مبحث، دانلود نمایید.

نام پروژه اندروید را برابر CameraTakePhoto انتخاب کرده ایم (نام package برابر com.kelidestan.cameratakephoto انتخاب شده است. نام activity اصلی را برابر MainActivity انتخاب کرده ایم و فایل xml متناظر آن را هم برابر activity_main قرار داده ایم).

ابتدا به سراغ فایل activity_main.xml می رویم که ظاهر گرافیکی مربوط به Activity را تعریف می کند :

رفتن به صفحه (برنامه) مربوط به دوربین گوشی (camera) و نمایش عکس گرفته شده، در یک ImageView در خود برنامه اندروید

کدهای فایل activity_main.xml را به صورت زیر می نویسیم :


<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="گرفتن عکس" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

همان طور که مشاهده می کنید، در آن، یک Button و یک ImageView تعریف کرده ایم.

ظاهر گرافیکی فایل activity_main.xml به صورت زیر می باشد :

رفتن به صفحه (برنامه) مربوط به دوربین گوشی (camera) و نمایش عکس گرفته شده، در یک ImageView در خود برنامه اندروید

اکنون به سراغ فایل MainActivity.java می رویم (فایل مربوط به کدهای Activity ، یعنی تنها Activity برنامه) :

رفتن به صفحه (برنامه) مربوط به دوربین گوشی (camera) و نمایش عکس گرفته شده، در یک ImageView در خود برنامه اندروید

کدهای فایل MainActivity.java را به صورت زیر می نویسیم :


package com.kelidestan.cameratakephoto;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {
       
        public ImageView iv;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
               
                iv = (ImageView)findViewById(R.id.imageView1);
               
                Button b = (Button) findViewById(R.id.button1);
                b.setOnClickListener(new OnClickListener() {
                 @Override
                 public void onClick(View v) {
                         Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                     startActivityForResult(intent, 0);
                 }
            });
        }
       
       
        @Override
           protected void onActivityResult(int requestCode, int resultCode, Intent data) {
              // TODO Auto-generated method stub
              super.onActivityResult(requestCode, resultCode, data);
              Bitmap bp = (Bitmap) data.getExtras().get("data");
              iv.setImageBitmap(bp);
           }


}

در روش onCreate ، کدهای زیر را نوشته ایم (کدهای روش onCreate ، به محض اجرای Activity ، اجرا خواهند شد) :


iv = (ImageView)findViewById(R.id.imageView1);
               
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(intent, 0);
    }
});

در کدهای فوق، ابتدا ImageView را شناسایی کرده ایم. سپس دکمه (Button) را شناسایی کرده ایم و با روش setOnClickListener ، تعیین کرده ایم که اگر کاربر بر روی دکمه (Button) اشاره کند، کدهای زیر اجرا شوند :


Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);

کدهای فوق را در مبحثی دیگر (