如何在 Kotlin 中使用协程将图像保存在设备中
How to save an image in device using Coroutines in Kotlin
我正在开发绘图应用程序项目,并且成功了。但最后,我需要将该图像保存在设备上。我在谷歌上搜索了一下,发现了 AsyncTask 的例子,现在已经弃用了。那么有人可以帮助我如何在 Kotlin 中使用协程吗?据我所知,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
}
}
希望这个 answer 可以帮助您做您想做的事来保存图像。
我正在开发绘图应用程序项目,并且成功了。但最后,我需要将该图像保存在设备上。我在谷歌上搜索了一下,发现了 AsyncTask 的例子,现在已经弃用了。那么有人可以帮助我如何在 Kotlin 中使用协程吗?据我所知,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
}
}
希望这个 answer 可以帮助您做您想做的事来保存图像。