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

سلام دوستان با قدرت بازگشتیم در این سری از آموزش برنامه نویسی اندروید به آموزش گرفتن Screen shot در برنامه نویسی اندروید میپردازیم قبلتر این آموزش را داده بودیم ولی توسط یکی از کاربران متوجه شدیم که در بعضی از گوشی ها screen shot گرفته نمی شود به همین علت در صدد آمادیم تا آموزش دیگری را در این رابطه برای شما برنامه نویسان عزیز قرار دهیم با ما همراه باشید.
ابتدا باید یک dependencies اضافه کنیم برای اینکار وارد Build.gradle شوید بخش Moudle سپس در بخش dependencies خط زیر را اضافه کنید.

compile 'com.github.nisrulz:screenshott:2.0.0'

سپس پروژه خود را sync کنید (ما تمامی دلیل هایی که ممکن است Gradle به خطا بخورد را گفتیم ایم کافی است در سایت سرچ کنید)
بعد از sync شدن کد layout را همانند زیر قرار دهید.

<?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="ir.input.MainActivity">
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="take Screen Shot xD"/>
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@mipmap/ic_launcher" />
</RelativeLayout>

در صورت نیاد خودتان اندازه های آنها را مشخص کنید.
سپس کد مربوط به MainActivity هم به شکل زیر می شود.

import android.graphics.Bitmap;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.regex.Pattern;
import github.nisrulz.screenshott.ScreenShott;
public class MainActivity extends AppCompatActivity {
    Bitmap bitmap;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btn = (Button)findViewById(R.id.btn);
        final ImageView img = (ImageView)findViewById(R.id.imageView);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {bitmap = ScreenShott.getInstance().takeScreenShotOfRootView(v);
                img.setImageBitmap(bitmap);
                saveScreenshot();
            }
        });
    }
    private void saveScreenshot() {
        try {
            File file = ScreenShott.getInstance()
                    .saveScreenshotToPicturesFolder(MainActivity.this, bitmap, "my_screenshot");
            Toast.makeText(MainActivity.this, "Bitmap Saved at " + file.getAbsolutePath(),
                    Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

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

مطالعه بیشتر