ミニ日記プロジェクトを行います。収納についての希望は?Androidのメモは使えますか? 写真とその下にテキストを表示します。
2 に答える
用途に合わせてご利用いただくことをお勧めします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));
}
お役に立てれば!!
SQLite データベースを使用してミニ日記プロジェクトを開発するための最良の方法。レコード (テキストと画像の両方) を取得して保存するための適切な方法。
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
基本的なリファレンスについては、上記のリンクを参照してください。