美文网首页
Android图片存取数据库

Android图片存取数据库

作者: 小山豆几 | 来源:发表于2019-06-21 20:44 被阅读0次

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
}

相关文章

网友评论

      本文标题:Android图片存取数据库

      本文链接:https://www.haomeiwen.com/subject/dkzuqctx.html