android 显示本地图片,Android下载到本地的图片在相册显示

/**

* 将图片在相册显示

*/

private fun updatePhotoAlbum(bitmap: Bitmap, file: File) {

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {

val values = ContentValues()

values.put(MediaStore.Images.Media.DATA, file.absolutePath)

values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg")

//将项直接插入到MediaStore 将自动扫描它们

val uri: Uri? = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)

} else {

MediaScannerConnection.scanFile(this, arrayOf(file.absolutePath), arrayOf("image/png")) { _, _ ->

object : Thread() {

override fun run() {

super.run()

saveBitmap(bitmap)

}

}.start()

}

}

}

@RequiresApi(Build.VERSION_CODES.Q)

fun saveBitmap(bitmap: Bitmap) {

val values = ContentValues()

values.put(MediaStore.Images.Media.DESCRIPTION, "This is an image")

values.put(MediaStore.Images.Media.DISPLAY_NAME, "Image.png")

values.put(MediaStore.Images.Media.MIME_TYPE, "image/png")

values.put(MediaStore.Images.Media.TITLE, System.currentTimeMillis().toString() + ".png")

values.put(MediaStore.Images.Media.RELATIVE_PATH, "DCIM/Camera")

val external = MediaStore.Images.Media.EXTERNAL_CONTENT_URI

val resolver: ContentResolver = contentResolver

val insertUri: Uri? = resolver.insert(external, values)

var os: OutputStream? = null

if (insertUri != null) {

try {

os = resolver.openOutputStream(insertUri)

bitmap.compress(Bitmap.CompressFormat.PNG, 90, os)

} catch (e: IOException) {

e.printStackTrace()

} finally {

try {

os?.close()

} catch (e: IOException) {

e.printStackTrace()

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值