Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用Kotlin中的协程在设备中保存图像_Android_Kotlin_Android Asynctask_Kotlin Coroutines - Fatal编程技术网

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

Android 如何使用Kotlin中的协程在设备中保存图像,android,kotlin,android-asynctask,kotlin-coroutines,Android,Kotlin,Android Asynctask,Kotlin Coroutines,我当时正在做一个绘图应用程序项目,我成功了。但最后,我需要将该图像保存到设备上。我在谷歌上搜索了一下,发现了AsyncTask的例子,现在已经不推荐了。那么,有谁能帮我解决科特林的合作项目吗?据我所知,协同程序是异步任务的一种替代方案 我指的是这个例子的替代方案 private inner class BitmapAsyncTask(val mBitmap: Bitmap): AsyncTask<Any, Void,String>(){ override fun

我当时正在做一个绘图应用程序项目,我成功了。但最后,我需要将该图像保存到设备上。我在谷歌上搜索了一下,发现了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
        }

    }
私有内部类BitmapAsyncTask(val-mBitmap:Bitmap):AsyncTask(){
重写fun doInBackground(vararg p0:Any?):字符串{
var result=“”
如果(mBitmap!=null){
试一试{
val bytes=ByteArrayOutputStream()
mBitmap.compress(Bitmap.CompressFormat.PNG,90字节)
val f=File(externalCacheDir!!.absoluteFile.toString()
+File.separator+“KidsDrawingApp_908;”
+System.currentTimeMillis()/1000+“.png”)
val fos=文件输出流(f)
fos.write(bytes.toByteArray())
fos.close()
结果=绝对路径
}捕获(e:例外){
result=“”
e、 printStackTrace()
}
}
返回结果
}
}

这可能有助于您将图像保存到存储器中。

如果您的答案只是指向另一个答案的链接,那么传递堆栈溢出的方法是将该问题标记为提供该答案的问题的副本。