如何在 Kotlin 中使用协程将图像保存在设备中

Posted

技术标签:

【中文标题】如何在 Kotlin 中使用协程将图像保存在设备中【英文标题】:How to save an image in device using Coroutines in Kotlin 【发布时间】:2021-08-11 00:01:22 【问题描述】:

我正在开发绘图应用程序项目,我成功了。但最后,我需要将该图像保存在设备上。我用谷歌搜索了它,发现了现在已弃用的 AsyncTask 示例。那么任何人都可以帮助我如何在 Kotlin 中使用 Coroutines 吗?据我所知,Coroutine 是 AsyncTask 的替代品。

我的意思是这个例子的替代方案。

  private inner class BitmapAsyncTask(val mBitmap: Bitmap): AsyncTask<Any, Void,String>()
        override fun doInBackground(vararg p0: Any?): String 
            var result = ""
            if(mBitmap != null)
                try
                    val bytes = ByteArrayOutputStream()
                    mBitmap.compress(Bitmap.CompressFormat.PNG, 90, bytes)
                    val f = File(externalCacheDir!!.absoluteFile.toString()
                            + File.separator + "KidsDrawingApp_"
                            + System.currentTimeMillis() / 1000 + ".png")
                    val fos = FileOutputStream(f)
                    fos.write(bytes.toByteArray())
                    fos.close()
                    result = f.absolutePath
                catch(e: Exception)
                    result = ""
                    e.printStackTrace()
                
            
            return result
        

    

【问题讨论】:

【参考方案1】:

愿这个answer 帮助您做您想做的事情,将图像保存在存储中。

【讨论】:

如果您的所有答案都是指向另一个答案的链接,那么在 Stack Overflow 上传达这一点的方法是将问题标记为提供该答案的问题的副本。

以上是关于如何在 Kotlin 中使用协程将图像保存在设备中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kotlin 协程中使用 Sqldelight

如何在 firebase 数据库中使用 kotlin 协程

Kotlin 协程Flow 异步流 ⑤ ( 流的上下文 | 上下文保存 | 查看流发射和收集的协程 | 不能在不同协程中执行流的发射和收集操作 | 修改流发射的协程上下文 | flowOn函数 )

Kotlin 协程Flow 异步流 ⑤ ( 流的上下文 | 上下文保存 | 查看流发射和收集的协程 | 不能在不同协程中执行流的发射和收集操作 | 修改流发射的协程上下文 | flowOn函数 )

如何将图像保存到kotlin中的画廊

我们可以在 Android Kotlin 的单个协程中下载多个文件吗