美文网首页
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