迷你日记的文本存储

时间:2013-08-22 09:04:00

标签: android storage

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

2 个答案:

答案 0 :(得分: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));
}

希望这会有所帮助!!

答案 1 :(得分:0)

使用SQLite Database开发迷你日记项目的最佳方式。获取和存储记录(文本和图像)的正确方法。

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

参考以上链接以获取基本参考。