仲間のプログラマー!私は新しいです...あなたが助けることを願っています!Android:データベースに画像への参照を保存する
So.私は現在、ユーザーが私のres/drawable /フォルダに保存した画像のセットから4つの異なる画像を選択し、その選択肢をデータベースのエントリとして保存するアプリケーションを開発しています。ユーザーがそれらの4つの画像を要求したときにそれらの4つの画像を再表示できるようにする必要があります。また、私の現在の設定が将来私のために働かないので、画像を保存する最良の方法が何であるか分かりません。
現時点では、私は実際に各イメージのデータベースにR.java int識別子を挿入するように作業しています。データベースにはimg1(int)、img2(int)、img3( int)、img4(int)。その後、私はクエリを書くとき、私はちょうどR.drawable.someImageの代わりにそれらの値を使用します。
正常に動作します。例外を除いて... res/drawableフォルダに新しい画像を追加すると、すべてのdrawable IDが変更されます!その後、私がデータベースに持っているIDは間違っています、そしていくつかは間違ったイメージを引き上げ、いくつかはNullPointerExceptionsをスローします!
これは、ユーザーがダウンロードした後に新しいイメージでアプリケーションを更新できるようにするため、問題です。これらのイメージを動的に選択できるようにするにはどうすればよいでしょうか。
AssetManagersの機能をちょっと説明できますか?私はAPIを見ていましたが、どういうわけか、他のプログラマーよりもずっと長くかかることがわかりました。基本的には、画像を生データとして保存してAssetManagerを使ってそのデータにアクセスすると、識別子が必要ないということですか?ご協力いただきありがとうございます! – Haley
AssetManager:アプリケーションの生アセットファイルへのアクセスを提供します。したがって、任意のリソース/アセットファイル(ビットマップ、XML)を生データストリームとして開くことができます。実際には、これはあなたの場合のように画像にのみ便利です。 –
イメージを特定の方法で保存する必要はありません。イメージをそのまま(* .pngファイル)そのまま残してください。 AssetManagerの名前(「drawable/image.png」など)を指定すると、データストリームが返されます。ファイルを開いてそこからデータを読み込むのと同じです。 –