製品カタログであるアプリを開発しています。商品(書籍)を検索・閲覧できます。すべて読み取り専用で、ユーザーが製品を表示できるようにします。ユーザーが製品をクリックすると、次の画面が表示されます - 書籍のタイトル - 書籍の著者 - 表紙の写真。
質問したい画像の部分です。ドローアブルを提示する1つの方法は、Androidプロジェクトで「ドローアブル」方向に配置し、(xmlファイルで)android:src="@drawable/name"としてアクセスすることです。
唯一の問題は、新しい製品が追加されるため、リリース時に APK ファイルにドローアブルを保存できないことです。実行時にそれらを読み取る必要があります。これにアプローチする最善の方法は何だろうと思っています。
私は(最初の)アプリの起動時にAsyncTaskを実行して、HttpURLConnectionのopenConnectionを呼び出し、(Webサイトの特定のリモートディレクトリから)すべてのドローアブルを取得し、それらをsqllite dbに保存することを考えています(ブロブ)。データベース内の各製品は、特定のドローアブルに簡単に関連付けることができます。
これに対するより良いアプローチがあるかどうかわからない? または、デバイスの内部ストレージに保存する必要があります (このオプションではサイズが問題になることがわかっています)。ドローアブルをオンデマンドで取得しようとすると、2 ~ 4 秒かかる場合があります (リモート サーバーからの取得など)。ドローアブルを効率的にダウンロードする方法はありますか?
更新: 上記のアプローチの唯一の問題は、リモート ドローアブルを取得してデバイス上でレンダリングするのにかかる時間 (2 ~ 7 秒) です。したがって、パフォーマンス上の理由から、そのアプローチを採用することはできません。ユーザーが初めてアプリを起動すると、(ASynch タスクを使用して) すべての製品が (リモートで csv に) 取得され、そのコンテンツが SQLLite データベースに保存されます。そのため、アプリの最初の起動時には許容できる程度の待ち時間がありましたが、その後はありませんでした。私は似たようなことをしたいのですが (つまり、ドローアブルも取得します)、それらを内部ストレージに保存するか、BLOB としてデータベースに保持する必要があるかわかりません。各サイズの最大サイズは 2 ~ 3kb ですが、合計で 300 個の製品が存在する可能性があります
どんな助けでも素晴らしいでしょう。私は Android 4.0.3 で開発しています。
ありがとう - ロー