Котлин: Как сохранить содержимое ImageView во внутренней / внешней памяти? - PullRequest
0 голосов
/ 20 июня 2019

Итак ... Я получил этот простой проект, где при нажатии кнопки используется намерение открыть камеру, сделать снимок, и если пользователь нажмет «ОК», отобразится фотоизображение внутри ImageView, это фрагмент ...

На кнопке я вызываю намерение камеры и получаю URI результата в переменной image_uri, поэтому я помещаю это изображение в объект ImageView с помощью:

imageView.setImageURI(image_uri)

Теперь я хочу сохранить это изображение во внутренней / внешней памяти или галерее. Я видел много ответов и множество учебных пособий, чтобы понять, что вам нужно использовать метод buildDrawingCache(), проблема в том, что Android Studio говорит, что этот метод устарел в Java.

Так что мне делать?

PS: я довольно новичок в разработке Kotlin / Android, поэтому я не знаю, какие параметры я должен вам дать. Я использую Android Studio 3.4.1 , JRE: 1.8.0_152-release-1343-b01 , используя Windows 10

1 Ответ

0 голосов
/ 20 июня 2019

Если вы получаете изображение с камеры, вы можете получить его в виде растрового изображения и сохранить в своем хранилище.

class MainActity : AppCompatActivity() { 
   override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
        super.onActivityResult(requestCode, resultCode, intent)
        //Get img from camera intent
        val img: Bitmap? = intent?.extras?.get("data") as Bitmap?
        img?.let { img ->
             val root = Environment.getExternalStorageDirectory().absolutePath
             val imgFile = = File(root, "myImg.jpg")
             img.compress(Bitmap.CompressFormat.JPEG, 90, FileOutputStream(imgFile))

             //Alert gallery to update images
             val intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE).apply {
                 data = Uri.fromFile(imgFile)
             }
             this@MainActivity.sendBroadcast(intent)
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...