Professional Documents
Culture Documents
Capture PDF
Capture PDF
“CAPTURE”
Chusnun Nidhom
D3 PJJ Teknik Informatika 2018
2103187019
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
tools:context=".MainActivity">
<!-- Hidden Text which will shown when taking screenshot from below
Button -->
<TextView
android:id="@+id/hidden_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/hidden_text"
android:textColor="@android:color/black"
android:textSize="14sp"
android:visibility="invisible" />
<!-- Button which will take screenshot after hiding some view and showing
some view -->
<Button
android:id="@+id/custom_page_screenshot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/custom_page_screenshot"
android:textColor="@android:color/black"
android:textSize="14sp" />
</LinearLayout>
Buat java class dengan nama enum ScreenshotType. kelas ini akan membantu
untuk membedakan antara jenis tangkapan layar yang perlu saya ambil.
package com.example.kalkulator;
MainActivity.java
package com.example.kalkulator;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
implementClickEvents();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.full_page_screenshot:
takeScreenshot(ScreenshotType.FULL);
break;
case R.id.custom_page_screenshot:
takeScreenshot(ScreenshotType.CUSTOM);
break;
}
}
fullPageScreenshot.setVisibility(View.INVISIBLE);//set the
visibility to INVISIBLE of first button
hiddenText.setVisibility(View.VISIBLE);//set the visibility to
VISIBLE of hidden text
b = ScreenshotUtils.getScreenShot(rootContent);
/* Share Screenshot */
private void shareScreenshot(File file) {
Uri uri = Uri.fromFile(file);//Convert file path into Uri for sharing
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "");
intent.putExtra(android.content.Intent.EXTRA_TEXT,
getString(R.string.sharing_text));
intent.putExtra(Intent.EXTRA_STREAM, uri);//pass uri here
startActivity(Intent.createChooser(intent,
getString(R.string.share_title)));
}
}
Selanjutnya buat class dengan nama ScreenshotUtils.java, kelas ini berfungsi untuk
menambahkan beberapa metode dtatis yang membantu untuk mengambil
tangkapan layar,membuat direktori dan menyimpan tangkapan layar yang diambil.
package com.example.kalkulator;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import java.io.File;
import java.io.FileOutputStream;