انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

#1
دوستان چطوری برنامه بنویسیم که بشه عکس گرفت ؟ و یه جا ذخیره کرد؟
پاسخ

برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

#2
این کد ها که میذارم مربوط به برنامه اندروییدت بشناس خودم هستش قسمت تست دوربین رو براتون میزارم که عکس یا فیلم میگیره و ذخیره میکنه


کد های مربوط به layuot

کد پی‌اچ‌پی:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="#000000" android:baselineAligned="false" tools:context=".MainActivity">
- <
LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:gravity="center" android:orientation="vertical">
- <
ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="77dp">
- <
LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
  <
TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#009900" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#EEEEEE" /> 
  <
TextView android:id="@+id/textView3" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff6600" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#EEEEEE" /> 
  <
TextView android:id="@+id/textView4" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff00cc" android:text="" android:textColor="#EEEEEE" android:textAppearance="?android:attr/textAppearanceMedium" /> 
  <
TextView android:id="@+id/textView5" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:textColor="#EEEEEE" android:textAppearance="?android:attr/textAppearanceMedium" /> 
  </
LinearLayout>
  </
ScrollView>
  <
Button android:id="@+id/btnCapturePicture" android:layout_width="80dp" android:layout_height="80dp" android:layout_marginBottom="10dp" android:background="@drawable/gerd" android:text="عکس گرفتن" android:textColor="#EEEEEE" /> 
  <
Button android:id="@+id/btnRecordVideo" android:layout_width="80dp" android:layout_height="80dp" android:background="@drawable/gerd" android:text="فیلم برداری" android:textColor="#EEEEEE" /> 
  </
LinearLayout>
- <
LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="vertical" android:padding="10dp">
  <
TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="نمایش محتوا" android:padding="10dp" android:textColor="#EEEEEE" android:textSize="15dp" /> 
  <
ImageView android:id="@+id/imgPreview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#EEEEEE" android:visibility="gone" /> 
  <
VideoView android:id="@+id/videoPreview" android:layout_width="wrap_content" android:layout_height="400dp" android:visibility="gone" /> 
  </
LinearLayout>
  </
LinearLayout

کد های کلاس

کد پی‌اچ‌پی:
package com.sajad.licenseprogram;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;

public class 
Camera_Test extends Activity {
    
    
MediaPlayer mdp,answer,errorr;

     private static final 
int CAMERA_CAPTURE_IMAGE_REQUEST_CODE 100;
        private static final 
int CAMERA_CAPTURE_VIDEO_REQUEST_CODE 200;
        public static final 
int MEDIA_TYPE_IMAGE 1;
        public static final 
int MEDIA_TYPE_VIDEO 2;
        
TextView tv1,tv2,tv3,tv4;
     
        
// directory name to store captured images and videos
        
private static final String IMAGE_DIRECTORY_NAME "AndroidSajad";
     
        private 
Uri fileUri// file url to store image/video
     
        
private ImageView imgPreview;
        private 
VideoView videoPreview;
        private 
Button btnCapturePicturebtnRecordVideo;
     
        
    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
// TODO Auto-generated method stub
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.camera_test);
        
        
        
mdp MediaPlayer.create(Camera_Test.this,R.raw.loading);
        
answer MediaPlayer.create(Camera_Test.this,R.raw.answerq);
        
errorr MediaPlayer.create(Camera_Test.this,R.raw.errorr);
        
        
tv1 = (TextView)findViewById(R.id.textView2);
        
tv2 = (TextView)findViewById(R.id.textView3);

        
tv3 = (TextView)findViewById(R.id.textView4);
        
tv4 = (TextView)findViewById(R.id.textView5);

         
imgPreview = (ImageViewfindViewById(R.id.imgPreview);
            
videoPreview = (VideoViewfindViewById(R.id.videoPreview);
            
btnCapturePicture = (ButtonfindViewById(R.id.btnCapturePicture);
            
btnRecordVideo = (ButtonfindViewById(R.id.btnRecordVideo);
     
           
            
btnCapturePicture.setOnClickListener(new View.OnClickListener() {
     
                @
Override
                
public void onClick(View v) {
                    
// capture picture
                    
answer.start();
                    
captureImage();
                }
            });
     
           
            
btnRecordVideo.setOnClickListener(new View.OnClickListener() {
     
                @
Override
                
public void onClick(View v) {
                    
// record video
                    
answer.start();
                    
recordVideo();
                }
            });
     
            
// Checking camera availability
            
if (!isDeviceSupportCamera()) {
                
errorr.start();
                
Toast.makeText(getApplicationContext(),
                        
"دوربین دستگاه شما پشتیبانی نمی شود",
                        
Toast.LENGTH_LONG).show();
                
finish();
            }
        }
     
      
        private 
boolean isDeviceSupportCamera() {
            if (
getApplicationContext().getPackageManager().hasSystemFeature(
                    
PackageManager.FEATURE_CAMERA)) {
                
// this device has a camera
                
return true;
            } else {
                
// no camera on this device
                
return false;
            }
        }
     
        
/**
         * Capturing Camera Image will lauch camera app requrest image capture
         */
        
private void captureImage() {
            
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
     
            
fileUri getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
     
            
intent.putExtra(MediaStore.EXTRA_OUTPUTfileUri);
     
            
// start the image capture Intent
            
startActivityForResult(intentCAMERA_CAPTURE_IMAGE_REQUEST_CODE);
            
tv1.setText("فعال کردن دوربین...");
        }
     
       
        @
Override
        
protected void onSaveInstanceState(Bundle outState) {
            
super.onSaveInstanceState(outState);
     
           
            
outState.putParcelable("sajad"fileUri);
        }
     
        @
Override
        
protected void onRestoreInstanceState(Bundle savedInstanceState) {
            
super.onRestoreInstanceState(savedInstanceState);
     
            
// get the file url
            
fileUri savedInstanceState.getParcelable("sajad");
        }
     
        
        private 
void recordVideo() {
            
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
     
            
fileUri getOutputMediaFileUri(MEDIA_TYPE_VIDEO);
     
           
            
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY1);
     
            
intent.putExtra(MediaStore.EXTRA_OUTPUTfileUri); 
     
            
            
startActivityForResult(intentCAMERA_CAPTURE_VIDEO_REQUEST_CODE);
        }
     
       
        @
Override
        
protected void onActivityResult(int requestCodeint resultCodeIntent data) {
            
// if the result is capturing Image
            
if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {
                if (
resultCode == RESULT_OK) {
                    
tv2.setText("عکس گرفته شد");
                    
previewCapturedImage();
                } else if (
resultCode == RESULT_CANCELED) {
                    
// user cancelled Image capture
                    
tv2.setText("؟؟؟لغو عکس گرفتن");
                } else {
                    
// failed to capture image
                    
tv2.setText("!!!اشکال در گرفتن عکس");
                }
            } else if (
requestCode == CAMERA_CAPTURE_VIDEO_REQUEST_CODE) {
                if (
resultCode == RESULT_OK) {
                    
tv2.setText("ویدیو با موفقیت ثبت شد");
                    
// video successfully recorded
                    // preview the recorded video
                    
previewVideo();
                } else if (
resultCode == RESULT_CANCELED) {
                    
// user cancelled recording
                    
tv2.setText("ضبط فیلم متوقف شد!!!");
                } else {
                    
// failed to record video
                    
tv2.setText("خطا در ضبط فیلم...؟؟؟");
                }
            }
        }
     
        
/**
         * Display image from a path to ImageView
         */
        
private void previewCapturedImage() {
            try {
                
// hide video preview
                
videoPreview.setVisibility(View.GONE);
     
                
imgPreview.setVisibility(View.VISIBLE);
     
                
// bimatp factory
                
BitmapFactory.Options options = new BitmapFactory.Options();
     
                
// downsizing image as it throws OutOfMemory Exception for larger
                // images
                
options.inSampleSize 8;
     
                final 
Bitmap bitmap BitmapFactory.decodeFile(fileUri.getPath(),
                        
options);
     
                
imgPreview.setImageBitmap(bitmap);
                
tv3.setText("ذخیره عکس انجام شد");
            } catch (
NullPointerException e) {
                
e.printStackTrace();
            }
        }
     
        
/**
         * Previewing recorded video
         */
        
private void previewVideo() {
            try {
                
// hide image preview
                
imgPreview.setVisibility(View.GONE);
                
tv3.setText("ذخیره فیلم انجام شد");
                
videoPreview.setVisibility(View.VISIBLE);
                
videoPreview.setVideoPath(fileUri.getPath());
                
// start playing
                
videoPreview.start();
                
tv4.setText("نمایش فیلم گرفته شده ");
            } catch (
Exception e) {
                
e.printStackTrace();
            }
        }
         
        
/**
         * ------------ Helper Methods ----------------------
         * */
     
        /**
         * Creating file uri to store image/video
         */
        
public Uri getOutputMediaFileUri(int type) {
            return 
Uri.fromFile(getOutputMediaFile(type));
        }
     
        
/**
         * returning image / video
         */
        
private static File getOutputMediaFile(int type) {
     
            
// External sdcard location
            
File mediaStorageDir = new File(
                    
Environment
                            
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
                    
IMAGE_DIRECTORY_NAME);
     
            
// Create the storage directory if it does not exist
            
if (!mediaStorageDir.exists()) {
                if (!
mediaStorageDir.mkdirs()) {
                    
Log.d(IMAGE_DIRECTORY_NAME"Oops! Failed create "
                            
IMAGE_DIRECTORY_NAME " directory");
                    return 
null;
                }
            }
     
            
// Create a media file name
            
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
                    
Locale.getDefault()).format(new Date());
            
File mediaFile;
            if (
type == MEDIA_TYPE_IMAGE) {
                
mediaFile = new File(mediaStorageDir.getPath() + File.separator
                        
"IMG_" timeStamp ".jpg");
            } else if (
type == MEDIA_TYPE_VIDEO) {
                
mediaFile = new File(mediaStorageDir.getPath() + File.separator
                        
"VID_" timeStamp ".mp4");
            } else {
                return 
null;
            }
     
            return 
mediaFile;
        }
    } 

فقط مجوز ها رو خودت در منیفست وارد کن  
همه آدما برای رسیدن به جایی که هستند از تجربه دیگران استفاده کردند
پس چرا ما از اندک تجربه ای که داریم برای راهنمایی دیگران استفاده نکنیم؟؟

 
پاسخ
 سپاس شده توسط ahmad97 ، admin ، jef313

برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

#3
سلام

یک لیوت دارم که از موارد زیر تشکیل شده
بعضی مواقع لیست ویو مربوط به آن زیاد میشه مثلا تا ۱۵ ردیف که در لیست ویو هست فقط ۱۰ تاش را در صفحه نمایش گوشی نمایش میده باید چکار کنم بتونم به صورت کامل از لیست ویو و کل لیوت اسکرین شات بگیرم

این لیوت من از یک LinearLayout کلی تشکیل شده سپس از یک اسکرول ویو و باقی موارد در LinearLayout های جداگانه درون اسکرول ویو قرار دارد

کدهایی که در اینترنت اموزش دادن فقط از صفحه گوشی عکس میگیرن و نمیتونه از کل LinearLayout اول که همه عناصر دیگه درون اون قرار داره عکس بگیره
لیوت من در ادرس زیر هست:
http://s6.picofile.com/file/8375759834/c...e.rar.html
پاسخ

برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

#4
سلام. ممنونم مشکل من حل شد
پاسخ

برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

#5
(۱۳۹۸/۰۷/۲۹, ۰۸:۰۳ ق.ظ)jef313 نوشته: سلام

یک لیوت دارم که از موارد زیر تشکیل شده
بعضی مواقع لیست ویو مربوط به آن زیاد میشه مثلا تا ۱۵ ردیف که در لیست ویو هست فقط ۱۰ تاش را در صفحه نمایش گوشی نمایش میده باید چکار کنم بتونم به صورت کامل از لیست ویو و کل لیوت اسکرین شات بگیرم

این لیوت من از یک LinearLayout کلی تشکیل شده سپس از یک اسکرول ویو و باقی موارد در LinearLayout های جداگانه درون اسکرول ویو قرار دارد

کدهایی که در اینترنت اموزش دادن فقط از صفحه گوشی عکس میگیرن و نمیتونه از کل LinearLayout اول که همه عناصر دیگه درون اون قرار داره عکس بگیره
لیوت من در ادرس زیر هست:
http://s6.picofile.com/file/8375759834/c...e.rar.html

لطفا یک راهنمایی کنید تا بدونم دنبال چی باید بگردم ایا مبحث خاصی داره که ممکنه ازش اطلاعی نداشته باشم چون من تازه برنامه نویسی اندروید یاد گرفتم
پاسخ

برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

#6
(۱۳۹۸/۰۸/۱۸, ۰۶:۱۶ ب.ظ)jef313 نوشته:
(۱۳۹۸/۰۷/۲۹, ۰۸:۰۳ ق.ظ)jef313 نوشته: سلام

یک لیوت دارم که از موارد زیر تشکیل شده
بعضی مواقع لیست ویو مربوط به آن زیاد میشه مثلا تا ۱۵ ردیف که در لیست ویو هست فقط ۱۰ تاش را در صفحه نمایش گوشی نمایش میده باید چکار کنم بتونم به صورت کامل از لیست ویو و کل لیوت اسکرین شات بگیرم

این لیوت من از یک LinearLayout کلی تشکیل شده سپس از یک اسکرول ویو و باقی موارد در LinearLayout های جداگانه درون اسکرول ویو قرار دارد

کدهایی که در اینترنت اموزش دادن فقط از صفحه گوشی عکس میگیرن و نمیتونه از کل LinearLayout اول که همه عناصر دیگه درون اون قرار داره عکس بگیره
لیوت من در ادرس زیر هست:
http://s6.picofile.com/file/8375759834/c...e.rar.html

لطفا یک راهنمایی کنید تا بدونم دنبال چی باید بگردم ایا مبحث خاصی داره که ممکنه ازش اطلاعی نداشته باشم چون من تازه برنامه نویسی اندروید یاد گرفتم

سلام

ایا هیچ راهنمایی برای این موضوع ندارید؟
پاسخ
 سپاس شده توسط شماره مجازی امارات

برنامه ای که عکس بگیرید (برنامه نویسی اندروید)

#7
(۱۳۹۸/۰۸/۲۵, ۱۲:۳۴ ق.ظ)jef313 نوشته:
(۱۳۹۸/۰۸/۱۸, ۰۶:۱۶ ب.ظ)jef313 نوشته:
(۱۳۹۸/۰۷/۲۹, ۰۸:۰۳ ق.ظ)jef313 نوشته: سلام

یک لیوت دارم که از موارد زیر تشکیل شده
بعضی مواقع لیست ویو مربوط به آن زیاد میشه مثلا تا ۱۵ ردیف که در لیست ویو هست فقط ۱۰ تاش را در صفحه نمایش گوشی نمایش میده باید چکار کنم بتونم به صورت کامل از لیست ویو و کل لیوت اسکرین شات بگیرم

این لیوت من از یک LinearLayout کلی تشکیل شده سپس از یک اسکرول ویو و باقی موارد در LinearLayout های جداگانه درون اسکرول ویو قرار دارد

کدهایی که در اینترنت اموزش دادن فقط از صفحه گوشی عکس میگیرن و نمیتونه از کل LinearLayout اول که همه عناصر دیگه درون اون قرار داره عکس بگیره
لیوت من در ادرس زیر هست:
http://s6.picofile.com/file/8375759834/c...e.rar.html

لطفا یک راهنمایی کنید تا بدونم دنبال چی باید بگردم ایا مبحث خاصی داره که ممکنه ازش اطلاعی نداشته باشم چون من تازه برنامه نویسی اندروید یاد گرفتم

سلام

ایا هیچ راهنمایی برای این موضوع ندارید؟

توی گوگل سرچ کن
take photo from recyclerview in android java
فکر کنم جواب رو پیدا کنی
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان