我尝试了不同的方法。但是我仍然无法将图像保存到指定位置。我不知道出什么问题了。需要一些建议。路径未创建,图像也未保存。
class DownloadAndSaveImage(context: Context) : AsyncTask<String, Unit, Unit>() {
private var mContext: WeakReference<Context> = WeakReference(context)
override fun doInBackground(vararg params: String?) {
val url = params[0]
val requestOptions = RequestOptions().override(100)
.downsample(DownsampleStrategy.CENTER_INSIDE)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE)
mContext.get()?.let {
val bitmap = Glide.with(it)
.asBitmap()
.load(url)
.apply(requestOptions)
.submit()
.get()
try {
val path = File(Environment.DIRECTORY_DCIM)
val dir =path.absolutePath
val file=File(dir+"/EAcademy","schoolImage.jpg")
if (!file.exists()) {
file.mkdir()
}
val out = FileOutputStream(file)
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, out)
out.flush()
out.close()
Log.i("Tribhuwan", "Saved Image")
} catch (e: Exception) {
Log.i("Tribhuwan", "Failed to save")
}
}
}
}
答案 0 :(得分:0)
由于您使用的是file.mkdir(),因此它将创建schoolImage.jpg目录而不是文件。您可以这样做
val path = File(Environment.DIRECTORY_DCIM)
val dir =path.absolutePath
val folder=File(dir+"/EAcademy")
if(!folder.exists()){
folder.mkdirs()
}
val file = File(folder, "schoolImage.jpg")