2011-11-13 16 views
1

私はクイズのアプリケーションで働いています。質問と画像を表示する必要があります。私はの質問をsqliteデータベースにandroidで表示しています。しかし、私はどのようにsqliteのデータベースに画像を格納し、それらを表示するか分からない。 私は非常に多くのリンクを通過し、リモートDBからイメージを表示する方法を見つけました。しかし、は、ローカルのsqlite dbからイメージを表示する必要があります。どうやってやるの。これに関して私を助けてください。アンドロイドのsqliteデータベースに画像を保存して取り込む方法は?

ありがとうございました。

+0

Welcome to Stackoverflow!あなたが回答が参考になったら、それを投票してください。応答があなたの質問にうまく答えた場合は、その隣の緑のチェックマークをクリックして答えを受け入れてください。また、良い質問を書く方法についてのアドバイスについては、http://stackoverflow.com/questions/how-to-askをご覧ください。 –

答えて

2

通常、バイナリデータをデータベースに保存しません。それは悪いフォームと考えられ、データがディスクに格納される方法のために、データベースへのクエリを実際に長くすることができます。あなたがするべきことは、あなたのデータベースの画像へのファイルパスを保存し、その画像をsdcardに保存することです。

大量のコードを記述することなく、ここには例があります。まず、次のSQL呼び出しで画像を保存するテーブルを作成します。

CREATE TABLE images (_id INTEGER PRIMARY KEY AUTOICREMENT, file_path TEXT, name TEXT); 

画像を挿入するときは、2つのことを行う必要があります。まず、イメージをSDカードに書き出します。これを行うにはここの指示に従ってください。あなたはそれを書かれており、そのためのファイル名を得たら、ちょうどそうのようなSQLクエリを実行します。

INSERT INTO images (file_path, name) VALUES ("your file path", "name of image"); 

あなたが実際に画像を表示する必要があるときはいつでも、あなたは自分からFILE_PATHで指定されたファイルを読み込みますSDカード。

+2

多くの画像がない場合や小さい場合は、それを追加します。 sdcardの代わりにそれらをローカルに格納するときに。多くのものがある場合や動的に更新する場合は、これを行わないでください。しかし、あなたが占めるスペースが比較的小さい場合は、ローカルに格納することは、sdcardデータが突然消えた場合やsdcardが利用できない場合(どちらも可能)について心配する必要がないことを意味します。 –

+0

素晴らしいポイント@KevinGalligan –

0

実際にあなたの記載された質問に答える精神の中で、本当にDBにイメージを書きたい場合、BLOBフィールドを追加してその中にデータを格納しますが、これを行う理由はありません。 Kurtis Nusbaumの助言を受けて、その画像をファイルとして保存します。

関連する問題