如何从API加载图像并将其保存到sqlite数据库中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从API加载图像并将其保存到sqlite数据库中?相关的知识,希望对你有一定的参考价值。
我已经将图像放入回收视图。所有其他详细信息都保存到sqlite数据库中。但是保存图像存在问题。
这是我的数据库表和将详细信息保存到数据库中的方法
val CREATE_TABLE = "CREATE TABLE $TABLE_NAME " +
"($ID INTEGER PRIMARY KEY, $BOOK_NAME TEXT, $DESCRIPTION TEXT, $AUTHOR TEXT, $COVER_PAGE BLOB, $ISBN TEXT, $LANGUAGE TEXT, $NUMBER_OF_PAGES INTEGER, $PRICE TEXT, $CATEGORY TEXT)"
db?.execSQL(CREATE_TABLE)
fun addFavouriteBooks(
id: Int,
bookName: String,
description: String,
author: String,
cover: ByteArray,
isbn: String,
language: String,
numbOfPages: Int,
price: String,
category: String
): Long
val db = this.writableDatabase
val contentValues = ContentValues()
contentValues.put(ID, id)
contentValues.put(BOOK_NAME, bookName)
contentValues.put(DESCRIPTION, description)
contentValues.put(AUTHOR, author)
contentValues.put(COVER_PAGE, cover)
contentValues.put(ISBN, isbn)
contentValues.put(LANGUAGE, language)
contentValues.put(NUMBER_OF_PAGES, numbOfPages)
contentValues.put(PRICE, price)
contentValues.put(CATEGORY, category)
val res = db.insert(TABLE_NAME, null, contentValues)
db.close()
return res
这是我在回收站适配器中的功能,用于在回收站视图中捕获数据并将其发送到sqlite数据库。我不知道像其他细节一样发送图像。
holder.like.setOnClickListener
var c_id = holder.id
var c_name = holder.name.text.toString()
var c_description = holder.description
var c_author = holder.author.text.toString()
var c_cover = holder.cover.toString()
//i want to convert this c_cover into byte array
var c_isbn = holder.isbn
var c_lang = holder.language
var c_numberOfPages: Int = holder.numbOfPages.toInt()
var c_price = holder.price.text.toString()
var c_category = holder.category
var favList: Long = dbHelper.addFavouriteBooks(c_id.toInt(), c_name, c_description, c_author,c_cover, c_isbn, c_lang, c_numberOfPages, c_price, c_category)
if(favList > 0)
Toast.makeText(context, "Book added to favourites", Toast.LENGTH_SHORT).show()
答案
这是我们在Java中的操作方式。
byte[] Imagebyte = getBitmapAsByteArray(((BitmapDrawable) YOUR_IMAGEVIEW.getDrawable()).getBitmap());
然后,将其存储在数据类型为BLOB的FIELD的sqlite中。
以上是关于如何从API加载图像并将其保存到sqlite数据库中?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:如何通过 API postman 上传图像并将其保存到数据库(phpmyadmin)
如何使用 sqlite 将我的图像保存到数据库中? [关闭]