آموزش ایجاد چراغ قوه در برنامه نویسی اندروید+ دانلود سورس پروژه

آموزش ایجاد چراغ قوه در برنامه نویسی اندروید+ دانلود سورس پروژه

در این مطلب قصد داریم روش ساخت و ایجاد یک برنامه چراغ قوه برای اندروید را به شما آموزش دهیم. این برنامه از فلش دوربین گوشی موبایل شما استفاده خواهد کرد و قابلیت داشتن یک چراغ قوه را به گوشی اندرویدی شما خواهد افزود! در هر صورت اگر شما یک برنامه نویس هستید می توانید به جای دانلود همچین برنامه ای از googleplay، از این برنامه به عنوان یک چراغ قوه شخصی استفاده نمایید.

در این مطلب قصد داریم روش ساخت و ایجاد یک برنامه چراغ قوه برای اندروید را به شما آموزش دهیم. این برنامه از فلش دوربین گوشی موبایل شما استفاده خواهد کرد و قابلیت داشتن یک چراغ قوه را به گوشی اندرویدی شما خواهد افزود! در هر صورت اگر شما یک برنامه نویس هستید می توانید به جای دانلود همچین برنامه ای از googleplay، از این برنامه به عنوان یک چراغ قوه شخصی استفاده نمایید.

 

ایجاد چراغ قوه در برنامه نویسی اندروید

توجه داشته باشید، این یک برنامه ساده می باشد که ما می توانیم با استفاده از آن و با یک دکمه روشن و خاموش، فلش دوربین گوشی خود را روشن و خاموش نماییم.

 آموزش ایجاد چراغ قوه در برنامه نویسی اندروید

1 - ابتدا نرم افزار اندروید استودیو را باز کنید و یک پروژه جدید با نام دلخواه ایجاد نمایید

2: افزودن Permission  مورد نیاز برای دسترسی به به دوربین:

فایل manifest  پروژه خود را باز کنید و دو خط زیر را به آن اضااف نمایید:

 <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />

3- ایجاد layout (لایه) مربوط به چراغ قوه:

در این مرحله قصد داریم لایه موبوط به نمایش دکمه روشن و خاموش را ایجاد نماییم، ما برای دو حالت روشن و خاموش از تصاویری استفاده کرده ایم که در فایل zip پیوست شده نیز موجود می باشد.

فایل main_activity.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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="@drawable/light_control_background"
    tools:context="com.javapapers.android.androidflashlight.app.FlashlightActivity">
    <ImageButton
        android:id="@+id/flashlightSwitch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dip"
        android:src="@drawable/light_off"
        android:background="@null"
        android:contentDescription="@null"
        />
</RelativeLayout>

همانطور که می بینید ما یک ImageButton تعریف کرده ایم سپس src را در حالت پیش فرض بصورت  android:src="@drawable/light_off" تعریف کرده ایم، یعنی با اولین ورود به برنامه دکمه خاموش نمایش داده خواهد شد.

4- ایجاد و تکمیل فایل Activity

package com.javapapers.android.androidflashlight.app;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.view.View;
import android.widget.ImageButton;

public class FlashlightActivity extends Activity {

    private Camera camera;
    ImageButton flashlightSwitchImg;
    private boolean isFlashlightOn;
    Parameters params;

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

        // flashlight on off Image
        flashlightSwitchImg = (ImageButton) findViewById(R.id.flashlightSwitch);

        boolean isCameraFlash = getApplicationContext().getPackageManager()
                .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

        if (!isCameraFlash) {
            showNoCameraAlert();
        } else {
            camera = Camera.open();
            params = camera.getParameters();
        }

        flashlightSwitchImg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isFlashlightOn) {
                    setFlashlightOff();
                } else {
                    setFlashlightOn();
                }
            }
        });
    }

    private void showNoCameraAlert(){
        new AlertDialog.Builder(this)
                .setTitle("Error: No Camera Flash!")
                .setMessage("Camera flashlight not available in this Android device!")
                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        finish(); // close the Android app
                    }
                })
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();
        return;
    }
    private void setFlashlightOn() {
       params = camera.getParameters();
       params.setFlashMode(Parameters.FLASH_MODE_TORCH);
       camera.setParameters(params);
       camera.startPreview();
       isFlashlightOn = true;
       flashlightSwitchImg.setImageResource(R.drawable.light_on);
    }

    private void setFlashlightOff() {
        params.setFlashMode(Parameters.FLASH_MODE_OFF);
        camera.setParameters(params);
        camera.stopPreview();
        isFlashlightOn = false;
        flashlightSwitchImg.setImageResource(R.drawable.light_off);
    }

    @Override
    protected void onStop() {
        super.onStop();
        if (camera != null) {
            camera.release();
            camera = null;
        }
    }
}

 

توضیح کدهای درون onCreate

با استفاده از کد زیر دکمه مربوط به روشن و خاموش کردن را به معرفی کرده ایم:

 flashlightSwitchImg = (ImageButton) findViewById(R.id.flashlightSwitch);

پس از آن در کدهای زیر بررسی کرده ایم که آیا موبایلی که  مورد استفاده می باشد دارای فلش می باشد یا نه، که اگر گوشی دارای فلش نبود پیغام خطایی بصورت AlertDialog به کاربر نمایش داده خواهد شد این پیغام خطا نیز درون تابع showNoCameraAlert() قرار داده شده است.

  boolean isCameraFlash = getApplicationContext().getPackageManager()
                .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

        if (!isCameraFlash) {
            showNoCameraAlert();
        } else {
            camera = Camera.open();
            params = camera.getParameters();
        }

 

در نهایت با دادن setOnClickListener به دکمه کار روشن و خاموش کردن چراغ قوه را بصورت زیر انجام داده ایم:

    flashlightSwitchImg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isFlashlightOn) {
                    setFlashlightOff();
                } else {
                    setFlashlightOn();
                }
            }
        });

متغیر isFlashlightOn که بصورت boolean می باشد در متدهای  setFlashlightOff() و setFlashlightOn() فراخونی شده است و در صورتی که متد اول صدا زده شود مقدار این متغیر به false تغییر خواهد کرد و در صورت روشن کردن چراغ نیز مقدار آن true خواهد شد.

البته شما می توانید این پروژه را به دلخواه خود گسترش دهید، برای مثال می توانید دکمه ای دیگر ایجاد نمایید که قابلیت چشمک زدن را به چراغ قوه شما بیفزاید.

 

اگر شما از این آموزش لذت برده اید، یا ایده ای بهتر دارید، از بخش نظرات با ما در میون بزارید:*


ارسال نظر

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *

اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!
لسیت نظرات
هنوز برای این مطلب نظری ارسال نشده است!