2016-09-20 16 views
0

私は、Node.jsサーバー経由でAmazon RDS DBに接続するAndroidアプリを構築しています。Androidでの画像ダウンロードを処理する正しい方法

My DBには特定の項目テーブルが含まれています。この表の各行には、アイテムのID、名前、簡単な説明、およびイメージへのリンクが含まれています。ユーザーが最初に目にするのは、カードビューのこのデータです。

私の質問はこれです:イメージ(およびその他のデータ)を読み込むための正しいアプローチは何ですか?ユーザーがアプリを開くたびに何度も何度も読み込むだけですか?何とかキャッシュしていますので、次回に画像をダウンロードする必要はありませんか?そして、私が画像をキャッシュすると、URLの内容が変化し、今は別の画像が含まれているとどうなりますか?チェックサムをチェックして、イメージを再度ダウンロードしてキャッシュしますか?そして残りのデータはどうですか?テキストの場合は、ユーザーがアプリを開くたびに読み込むだけですか?

また、ダウンロード自体を実行する最善の方法は何ですか?ローダーは使用しますか? AsyncTask?他のタイプのスレッド?私はマルチスレッドプログラミングには新しく、どんな情報もここで役立ちます。 ありがとう!

+0

Androidのデフォルトでは、「HttpUrlConnection」を使用してAsyncTaskにデータをロードします。次に、イメージURLを取得し、必要なときはいつでもイメージをロードする別のタスクを作成します。あなたのAPIを呼び出すための[Retrofit](http://square.github.io/retrofit/)とURLから画像を取得するための[Picasso](http://square.github.io/picasso/)をチェックすることをお勧めしますただし、これらのAsyncTaskを書くことの苦労を避けることができます。 – Weava

+0

複数のライブラリをチェックすることで、キャッシングを簡単にすることができます。自分でそれをやろうと思っているのであれば、多くのことを世話する必要があるので、既存のライブラリをうまく使うことができます。http://stackoverflow.com/questions/19995007 /アンドロイド・スクエア・ピカソー・ユニバーサル・イメージ・ロードに対するローカル・イメージ・キャッシング・ソリューション – surya

答えて

1

は、あなたが解決している問題に依存します。私は2つの一般的なライブラリを推奨することができます、彼らはシンプルで信頼性の高いです。

Picasso : 

http://square.github.io/picasso/

Glide : 

https://github.com/bumptech/glide

あなたも、デフォルトのネットワーキングおよびデコードストリームを使って自分でこれを行うことができます。 UniversalImageLoaderを使うこともできますが、PicassoやGlideを使うのが最善の解決策だと思います。

0

イメージキャッシュが心配な方は、Glideに行ってもよいと思います。

しかし、画像の品質が心配な場合は、Picassoに行ってください。

私はグライドを使用することをお勧めします。差別化のために、hereをご覧ください。

関連する問題