همیار اندروید
همیار اندروید
همیار اندروید
نه
بله
منوی وبسایت
حساب کاربری

همیار اندروید

مرجــع تخصـصــی توسـعــه انــدرویــد

منوی وبسایت
حساب کاربری

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

آموزش کار با دوربین در برنامه نویسی اندروید
نوع هزینه
شرکت کنندگان
دریافت دسترسی
مشخصات این آموزش
موضوعات مرتبط
زبان برنامه‌نویسی
Java   ,   XML
نوع قسمت‌ها
محتوای ارائه شده
متن   ,   تصویر
مهارت های مورد نیاز
وضعیت انتشار
سطح آموزش
آخرین آپدیت
یادگیری این آموزش

به نام خدا

سلام دوستان عزیز

در این جلسه از آموزش میخام با درباره چگونگی کار با دوربین کار کنیم

اینکه چطور بتونیم در برنامه خودمون وارد دوربین گوشی بشیم و بتونیم از

دوربین استفاده کنیم

قبل از هر کاری ما باید ببینیم به چه چیزهایی در برناممون نیاز داریم 

خب من در برنامه به یک دکمه نیاز دارم که با اون عکس بگیرم 

و به یک ImageView برای نشون دادن تصویر گرفته شده

خب میریم سراغ آموزش

 

 

قدم اول

ابتدا در activity مورد نظر من یک Button و یک ImageView ایجاد میکنم

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:src="@drawable/ic_launcher_foreground" />

    <Button
        android:id="@+id/btn_photo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:text="Take Picture" />

</LinearLayout>

خب در بالا من یک Button و یک ImageView ایجاد کردم

نکته ای که در اینجا باید بهتون بگم اینه که

در خط 13 ارتفاع را 0 تعیین کردم و در خط چهارده 

یک ویژگی به نام weight یعنی وزن اضافه کردم

من با دادن ویژگی وزن به ایمیج ویو در واقع دستور دادم که هرچقدر از فضای صفحه باقی مونده 

به همان اندازه گسترش پیدا کن از همین ویژگی هم می توان برای عرض استفاده کرد یعنی عرض را صف بدهیم و به اون وزن اضافه کنیم

 

 

قدم دوم

در این مرحله باید برای برنامه مجوز دسترسی به دوربین دستگاه را صادر کنیم

برای اجازه دسترسی به دوربین دستگاه در قسمت Manifest  کد زیر را جای گذاری می کنیم

و از طریق این کد به ویژگی های دوربین دسترسی پیدا می کنیم

نکته افزودن ویژگی های دوربین به مانیفست باعث میشه Google Play مانع از نصب برنامه شماروی دستگاه هایی بشه  که  ویژگی های دوربین مورد نظر شما پشتیبانی نمیکنه

<uses-feature android:name="android.hardware.camera" android:required="true" />

 

 

قدم سوم 

نوشتن کدهای java در کلاس مورد نظر

من کدها رو در پایین مینویسم و در آخر خط به خط توضیح میدم

MainActivity.java

package com.hamyarandroid.capturingpictures;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;


public class MainActivity extends AppCompatActivity {
    ImageView imgView;
    Button btnPhoto;
    protected static final int CameraRequest = 1;

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

        imgView = findViewById(R.id.imageview);
        btnPhoto = findViewById(R.id.btn_photo);

        btnPhoto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent aks = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(aks, CameraRequest);

            }
        });

    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == CameraRequest) {

            Bitmap resultPhoto = (Bitmap) data.getExtras().get("data");
            imgView.setImageBitmap(resultPhoto);

        }

    }
}

کد کلی جاوا کلاس به صورت بالا هستش حالا من در پایین بخش به بخش اونو واستون توضیح میدم

خط 15 و 16

معرفی ویوها به کلاس

خط 17

برای برگرداندن نتیجه کار و نمایش عکس از این کد استفاده میکنیم که عدد دلخواه 1 و نام دلخواه میگیرد

خط های 24 و 25

اتصال ویوهای معرفی شده بالا به id

خط 27

خاصیت کلیک خوری برای باتن ایجاد کردیم

خط 31

ما اینجا مشخص میکنیم که از چه ویژگی دوربین میخایم استفاده کنیم

و من در اینجا از ویژگی گرفتن عکس توسط دوربین استفاده کردم

خط 32

برای رفتن به دوربین استفاده میکنیم

خط 39

یک متد ایجاد میکنیم برای دریافت عکس و نمایش آن درون ImageView

خط 41

یک شرط ایجاد میکنیم و میگیم اگر requestCode برابر بود با CameraRequest عمل زیر برای ما اجرا شود

CameraRequest  را در بالا توضیح دادیم که قرار است یه int برای ما برگرداند

خط 43

تصویری که در یافت میکنیم را باید به جنس Bitmap تبدیل کنیم و در ImageView نمایش بدیم

پس ما به یک شی نیاز داریم که اسمش هست  Bitmap  و اسمشو  resultPhoto گذاشتیم

که میاد و اطلاعاتی رو در خودش ذخیره میکنه و اسم اون اطلاعات رو data میذاریم

خط 44

تصویر گرفته شده را روی ImageView ست میکنیم

 

تصویر خروجی برنامه را میتونید در پایین ببینید

 

 

 

 

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

موفق و پیروز باشین

 

 

 

 

HRoid.ir/t173
لینک کوتاه این آموزش برای انتشار در شبکه های اجتماعی
نظرات این آموزش
ابتدا باید وارد حساب کاربری خود شوید ، تا بتوانید برای این آموزش نظری ارسال کنید
هنوز نظری برای این آموزش ثبت نشده است
کپی برداری از محتوا و دیگر منابع اختصاصی به هر نحو غیر مجاز است. حتی با ذکر منبع. در صورت تخلف پیگرد قانونی به همراه خواهد داشت.
Copyright © 2020 , www.HamyarRoid.com , www.HamyarAndroid.com , Terms , Sitemap
خلـــق هـمیـار انـدرویــد با
logo-samandehi