我想知道如何在数据库中保存位图.我在db中创建了表:
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE " + TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT,image BLOB)");
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法插入图像.请告诉我我需要插入图像的格式.
Pun*_*han 14
如果您有位图图像,那么您可以执行以下操作.
Bitmap photo = <Your image>
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, bos);
byte[] bArray = bos.toByteArray();
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用以下方式将数据保存在表中.
db = YourDBHelper.getInstance(ctx).getWritableDatabase();
ContentValues values = new ContentValues();
values.put("image", bArray);
db.insert(TABLE_NAME , null, values);
Run Code Online (Sandbox Code Playgroud)
如果你想这样做,你需要使用blob.但为什么你要这样做..我不会将图像存储到数据库中.最好将图像存储在SD卡上,然后将其路径存储到数据库中.通常数据库安装在手机内存上,只会填满手机内存......
将其写入二进制文件并存储为 BLOB...您走在正确的轨道上。您也可以使用对象来完成此操作。
http://www.idevelopment.info/data/Programming/java/jdbc/LOBS/BLOBFileExample.java
也不要忘记谷歌代码:
| 归档时间: |
|
| 查看次数: |
21242 次 |
| 最近记录: |