我会做一个迷你日记项目。您对存储有何期望?我可以使用Android的Note吗?我会在照片下方显示一张照片和一个文字。那么,如何存储这些文字?
问问题
373 次
2 回答
1
我建议你根据sqlite
你的要求使用。由于在一个sqlite
表中您有多个条目,因此您可以将图像数据和文本存储在同一行中。
现在这里的挑战是如何在 sqlite 中存储图像?
解决方案是您可以将图像转换为字节数组,将字节数组转换为字符串。该字符串可以作为文本存储在 sqlite 表中,您可以从该字符串中检索字节数组并从字节数组中检索您的图像。
将图像转换为字节数组的代码:
public static byte[] drawableToByteArray(Drawable d) {
if (d != null) {
Bitmap imageBitmap = ((BitmapDrawable) d).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] byteData = baos.toByteArray();
return byteData;
} else
return null;
}
上述函数返回的字节数组需要你将其转换为字符串并存入数据库。
您的 sqlite 表应创建如下所示:
CREATE TABLE IF NOT EXISTS Your_table ( id INTEGER PRIMARY KEY NOT NULL UNIQUE, someOtherField TEXT, pictureData TEXT);
从 sqlite 检索数据后,将字符串转换为字节数组,将字节数组转换为位图的代码如下:
public static Drawable byteToDrawable(byte[] data) {
if (data == null)
return null;
else
return new BitmapDrawable(BitmapFactory.decodeByteArray(data, 0, data.length));
}
希望这可以帮助!!
于 2013-08-22T09:44:57.643 回答
0
使用 SQLite 数据库开发迷你日记项目的最佳方法。获取和存储记录(文本和图像)的正确方法。
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
请参阅上面的链接以获取基本参考。
于 2013-08-22T09:37:42.537 回答