آموزش کار با دوربین در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش کار با دوربین (Camera) در برنامه نویسی اندروید خواهیم پرداخت در این آموزش یک دکمه (Button) و یک ImageView قرار دارد که با کلیک بروی Button دوربین برای شما نمایش پیدا می کند زمانی که عکس گرفته شود توسط bundle دریافت و در ImageView قرار خواهد گرفت آموزش دوربین در برنامه نویسی اندروید در برنامه نویسی بسیار مهم است در ادامه با ما همراه باشید.
ابتدای کار باید در layout خود یک Button و ImageView همانند زیر قرار دهید نام فایل برابر با main.xml است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?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 است و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 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 قرار میدهیم.
این آموزش هم به فرجام رسید.
موفق و موید باشید.
بسیار ممنون از اموزشتون
خواهش می کنم.
اگر بخواهیم همین عکسی که گرفتم به اشتراگ بذاریم چیکار باید کرد
از اموزش زیر استفاده کنید:
https://programchi.ir/2017/09/27/%d8%a7%d8%b4%d8%aa%d8%b1%d8%a7%da%a9-%da%af%d8%b0%d8%a7%d8%b1%db%8c-%d8%b9%da%a9%d8%b3-%d8%af%d8%b1-%d8%a7%d9%86%d8%af%d8%b1%d9%88%db%8c%d8%af/
چطور میشه حالت تماس تصویری تو اندروید استدیو درست کرد؟
چگونه در خود برنامه دسترسی گرفتن عکس بدیم
اینم آموزش به اشتراک گذاشتن عکس گرفته شده کافیه این کدو کپی ودر فایل MainActivity بزارید بعد از کلاس min که layout ما است قرار میدیم با تشکر از همه
منبع ناکجا آباد
سلام. من کدتون رو پیاده کردم و جواب میده اما وقتی عکس رو میگیرم کیفیت عکس شدیدا کم میشه. میشه کمک کنید؟
سلام ببخشید من وقتی عکس رو میگیرم و اونو تو image view ست میکنم کیفیت عکس میاد پایین .چطوری این مشکلو حل کنم؟