خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

آموزش گرفتن اسکرین شات Screen Shot android

آموزش گرفتن اسکرین شات Screen Shot android

آموزش گرفتن اسکرین شات Screen Shot android

اسکرین شات Screen shot android studio

اسکرین شات 

سلام و احترام خدمت دوستان گرامی سایت خانه اندروید در خدمت شما هستیم با سورس کد دریافت اسکرین شات از صفحه نمایش این آموزش به صورت سورس کد می باشد  و به سادگی می توانید از این سورس کد استفاده کنید تا از صفحه دیواس اسکرین Screen Shot android  تهیه کنید. دقت بفرمایین برای اینکار نیازمند پرمیزن run time فایل و در api ورزن های پایین نیازمند این امر نیستیم.

برای اینکه این آموزش رو پیش بریم لطفا نرم افزار اندروید استودیو رو باز و سپس اکتیویتی را ایجاد نمایید . و سپس در بخش پرمیژن ها فایل را اضافه کنید.

و خواندن فایل :

  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

فایل android manifest.xml باز کنید. و طبق تصویر اضافه کنید.

آموزش گرفتن اسکرین شات Screen Shot android

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

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    tools:context=".Test_ScreenShot.Screen_Shot_Create">


    <Button
        android:id="@+id/Btn_screen"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_weight=".49"
        android:fontFamily="@font/iran"
        android:text="گرفتن اسکرین شات"

        />

</RelativeLayout>

و طبق تصویر :

آموزش گرفتن اسکرین شات Screen Shot android

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

public class Screen_Shot_Create extends AppCompatActivity {
     Button Btn_screen;
     private static final int PERMISSION_REQUEST_CODE =101;
     //homeandroid.ir website android developer
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screen__shot__create);

        Btn_screen=findViewById(R.id.Btn_screen);

        Btn_screen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(Build.VERSION.SDK_INT>=23){
                    if(checkPermission()){
                        Create_Screen_Shot();

                    }else{
                        requestPermission();
                    }
                }
                else{
                    Create_Screen_Shot();
                }
            }
        });

    }

    void Create_Screen_Shot()
    {

        Date now = new Date();
        android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now);

        try {
            String mPath = Environment.getExternalStorageDirectory().toString() + "/" + now + ".jpg";
            View v1 = getWindow().getDecorView().getRootView();
            v1.setDrawingCacheEnabled(true);
            Bitmap bitmap = Bitmap.createBitmap(v1.getDrawingCache());
            v1.setDrawingCacheEnabled(false);

            File imageFile = new File(mPath);

            FileOutputStream outputStream = new FileOutputStream(imageFile);
            int quality = 100;
            bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream);
            outputStream.flush();
            outputStream.close();

            Open_path_address_screen(imageFile);
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }


    void Open_path_address_screen(File imageFile)
    {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        Uri uri = Uri.fromFile(imageFile);
        intent.setDataAndType(uri, "image/*");
        startActivity(intent);
    }

    private boolean checkPermission() {
        int result = ContextCompat.checkSelfPermission(Screen_Shot_Create.this, android.Manifest.permission.READ_EXTERNAL_STORAGE);
        if (result == PackageManager.PERMISSION_GRANTED) {
            return true;
        } else {
            return false;
        }
    }
    private void requestPermission() {
        if (ActivityCompat.shouldShowRequestPermissionRationale(Screen_Shot_Create.this, android.Manifest.permission.READ_EXTERNAL_STORAGE)) {
            Toast.makeText(Screen_Shot_Create.this, "Write External Storage permission allows us to read files. Please allow this permission in App Settings.", Toast.LENGTH_LONG).show();
        } else {
            ActivityCompat.requestPermissions(Screen_Shot_Create.this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case PERMISSION_REQUEST_CODE:
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                   Create_Screen_Shot();

            } else {
                    Toast.makeText(this, "پرمیژن جهت دریافت اسکرین شات داده نشد", Toast.LENGTH_SHORT).show();
            }
            break;
        }
    }

}

توضیحاتی در مورد سورس کد بالا :

برای ذخیره در حافظه گوشی کاربر از مسیر زیر استفاده کرده ایم که این بخش در دیوایس اندرویدی شما میشه myfile

Environment.getExternalStorageDirectory()

برای دریافت پرمیژن ران تایم فایل برای اندروید ورژن های ۲۳ به بعد یا اندروید ۶ از متد فوق استفاده می کنیم.

()checkpermission

موفق باشین.

درباره نویسنده

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

    به دیدگاه های بی نام و نشان که ایمیل فیک و نام فیک وارد می کنند پاسخ داده نمی شود

10 دیدگاه

  1. علی گفت:

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

  2. معین گفت:

    سلام وقت به خیر
    لطفا لیست تمامی آموزش های دیجی کالا را به جیمیلم بفرستین ممنونم
    با تشکر از ویدیو های شما

    • Admin گفت:

      سلام و احترام
      بزودی مشکلات برطرف میشه به دلیل قطع سراسری اینترنت
      بزودی سرور قابل دانلود باشه برای شما ارسال می کنم.
      با احترام.

  3. jalal گفت:

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

    • Admin گفت:

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

  4. Hamid Samarghandi گفت:

    با عرض سلام خدمت شما بزرگوار
    در بررسی دوره های ذکر شده در لیست محصولات آموزشی سوالی برام پیش اومد :
    بنده آشنایی با مباحث برنامه نویسی دارم ولی بدلیل جذابیت زیاد اپلیکیشن های اندروید میخواستم این دوره مورد نظر رو شروع کنم ولی کدام دوره شما جامع تر ( از صفر تا صد ) میباشد که با مطالعه آن بشود یک اپلیکیشن دلخواه برای مشتری آماده و پرزنت کرد ( هم فروشگاهی باشه | اطلاع رسانی | محاسباتی ) لطفاً معرفی بفرمایید و ضمناً آیا برای خرید تخفیف هم دارید؟

    با تشکر

    • Admin گفت:

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

  5. سجاد رفتاری گفت:

    سلام تابع‌Open_path_address_screen
    Public نمیخواد؟