0

我会做一个迷你日记项目。您对存储有何期望?我可以使用Android的Note吗?我会在照片下方显示一张照片和一个文字。那么,如何存储这些文字?

4

2 回答 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 回答