我正在做一个关于联系人的项目为此,我需要在SQlite DataBase中导入/存储图片。根据我的阅读,我必须将图片转换为不同的格式(在这个假设中可能是错误的)然后存储它在数据库中。你能告诉我怎么做,或者我可以用不同的方法做到这一点吗?两者都对我有帮助,所以我可以学到更多。
谢谢,
答案 0 :(得分:0)
答案 1 :(得分:0)
取决于您想要从哪里获取图片,无论是来自互联网还是来自SD卡。但是,我假设你可以得到它并将其转换为位图。
Bitmap bm = (get it from anywhere);
ByteArrayOutputStream blob = new ByteArrayOutputStream();
//the below line is used if you like to scale it down to store it into the database
bm = Bitmap.createScaledBitmap(bm, width, height, false);
//then put it into a byte array to store it in the database
bm.compress(CompressFormat.JPEG, 100, blob);
// method call to database
dbClass.addPicture(blob.toByteArray());
数据库中的表定义:
SQLiteDatabase.execSQL("CREATE TABLE IF NOT EXISTS Pictures (id integer primary key autoincrement, pic blob not null ");
数据库类中的addPicture方法如下
public void addPicture(byte[] picture){
db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("pic", picture);
db.insert("Pictures ", null, cv);
}
我希望有帮助