import
android.app.Activity
import
android.content.Intent
import
android.graphics.Bitmap
import
android.graphics.ImageDecoder
import
android.net.Uri
import
android.os.Build
import
androidx.appcompat.app.AppCompatActivity
import
android.os.Bundle
import
android.provider.MediaStore
import
android.widget.Button
import
android.widget.ImageView
import
android.widget.Toast
import
androidx.annotation.RequiresApi
import
java.io.IOException
class
MainActivity : AppCompatActivity() {
private
lateinit var mImageView: ImageView
private
val mPickImage =
1
private
lateinit var mYourBitmap: Bitmap
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val mUploadButton = findViewById<Button>(R.id.upload_button)
val mResizeButton = findViewById<Button>(R.id.resize_button)
mImageView = findViewById(R.id.imageView)
mUploadButton.setOnClickListener {
val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.type =
"image/*"
startActivityForResult(intent, mPickImage)
}
mResizeButton.setOnClickListener {
val resized = Bitmap.createScaledBitmap(mYourBitmap,
300
,
300
,
true
)
mImageView.setImageBitmap(resized)
}
}
@RequiresApi
(Build.VERSION_CODES.P)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super
.onActivityResult(requestCode, resultCode, data)
if
(requestCode == mPickImage && resultCode == Activity.RESULT_OK) {
if
(data ==
null
) {
Toast.makeText(applicationContext,
"Error"
,Toast.LENGTH_SHORT).show()
return
}
try
{
val imageUri: Uri = data.data!!
val source = ImageDecoder.createSource(
this
.contentResolver, imageUri)
mYourBitmap = ImageDecoder.decodeBitmap(source)
mImageView.setImageBitmap(mYourBitmap)
}
catch
(e: IOException) {
e.printStackTrace()
}
}
}
}