Skip to content

Instantly share code, notes, and snippets.

@davidelp68
Created August 30, 2020 15:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidelp68/a00744853ecdf7b96eb62387e5c4739b to your computer and use it in GitHub Desktop.
Save davidelp68/a00744853ecdf7b96eb62387e5c4739b to your computer and use it in GitHub Desktop.
Android Studio - Take Screenshot
package com.dm.tutorialscreenshot2
import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.Bitmap
import android.graphics.Color
import android.net.Uri
import android.os.Bundle
import android.os.Environment
import android.os.StrictMode
import android.os.StrictMode.VmPolicy
import android.view.View
import android.widget.Button
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import kotlinx.android.synthetic.main.activity_main.*
import java.io.*
import java.util.*
//dichiarazione della variabile di tipo View (vista)
private var mainL: View? = null
//dichiarazione della variabile di tipo ImageView
private var imageView: ImageView? = null
private var btn: Button? = null
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mainL = findViewById(R.id.main)
imageView = findViewById(R.id.imageview)
btn = findViewById(R.id.bnScreenshot)
//richiesta dei permessi all'avvio dell'app
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE), PackageManager.PERMISSION_GRANTED)
val builder = VmPolicy.Builder()
StrictMode.setVmPolicy(builder.build())
btn!!.setOnClickListener {
//chiamata dell'object Screenshot
val b: Bitmap = Screenshot.takescreenshotOfRootView(imageview)
imageView!!.setImageBitmap(b)
//questa riga serve per far vedere bene l'immagine acquisita
mainL!!.setBackgroundColor(Color.parseColor("#999999"))
//*****************************************************
//chiamata alla funzione saveScreenshot con passaggio immagine creata
saveScreenshot(b)
}
}
//funzione che esegue il salvataggio nella cartella Download del dispositivo dell'immagine creata e la sua visualizzazione
private fun saveScreenshot(bitmap: Bitmap) {
val filePath = Environment.getExternalStorageDirectory().toString() + "/Download/" + Calendar.getInstance().time.toString() + ".jpg"
val fileScreenshot = File(filePath)
val fileOutputStream: FileOutputStream?
try {
fileOutputStream = FileOutputStream(fileScreenshot)
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream)
fileOutputStream.flush()
fileOutputStream.close()
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
//Intent per la visualizzazione dell'immagine salvata
val intent = Intent(Intent.ACTION_VIEW)
val uri: Uri = Uri.fromFile(fileScreenshot)
intent.setDataAndType(uri, "image/jpeg")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
this.startActivity(intent)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment