Android图片存取数据库

1、存图片路径
2、存图片二进制(sqllite blob的数据类型)
3、存图片Uri

/**
 * 获取资源id的uri字符串
 * 这里可以传.xml格式的,但是在解析的时候会失败
 */
fun getUriString(context: Context, @DrawableRes id: Int): String {
    return ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
        context.resources.getResourcePackageName(id) + "/" +
        context.resources.getResourceTypeName(id) + "/" +
        context.resources.getResourceEntryName(id)
}
/**
 * 把 ContentResolver.SCHEME_ANDROID_RESOURCE 的uri转为bitmap
 * 该方法只支持 R.mipmap 资源
 */
fun getUriBitmap(context: Context, uriString: String): Bitmap? {
    val uri = Uri.parse(uriString)
    val inputStream = context.contentResolver.openInputStream(uri)
    val bitmap: Bitmap? = BitmapFactory.decodeStream(inputStream)
    inputStream!!.close()
    return bitmap
}
/**
 * 把 ContentResolver.SCHEME_ANDROID_RESOURCE 的uri转为Drawable
 * 该方法只支持 R.drawable 下的图片(.png等,不支持.xml)资源
 */
fun getUriDrawable(context: Context, uriString: String): Drawable? {
    val uri = Uri.parse(uriString)
    val inputStream = context.contentResolver.openInputStream(uri)
    val drawable = Drawable.createFromStream(inputStream, "srcName")
    inputStream!!.close()
    return drawable
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容