将位图保存到Android API 28中的外部存储中,结果为0 B文件
问题描述 投票:2回答:1
我正在尝试将位图保存到外部存储。我使用了在android - save image into gallery中找到的代码。但是,结果文件的大小为0 B,但确实包含缩略图。我的代码是:private fun saveBitmap(bitmap: Bitmap, name: String) {
val contentValues = contentValuesOf(
MediaStore.MediaColumns.TITLE to name,
MediaStore.MediaColumns.DISPLAY_NAME to name,
MediaStore.MediaColumns.MIME_TYPE to "images/jpeg",
MediaStore.MediaColumns.DATE_ADDED to System.currentTimeMillis()
)
val resolver = contentResolver
val uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
val outputStream = resolver.openOutputStream(uri!!)!!
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream)
outputStream.flush()
outputStream.close()
}
android
1个回答
0
投票
而不是保存为JPEG,请尝试另存为PNGtry (FileOutputStream out = new FileOutputStream(filename)) {
bmp.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance
// PNG is a lossless format, the compression factor (100) is ignored
} catch (IOException e) {
e.printStackTrace();
}
[请找到类似的问题,回答here
也如评论中所述,请检查,您是否已获得读/写访问权限?如果没有,请参考下面的代码。if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
Log.v(TAG,"Permission is granted");
//File write logic here
return true;
}
热门问题