2015-12-29 6 views
6

私はサーバーからいくつかの画像をダウンロードしなければならないプロジェクトを開発中です。私はこれらの3つの方法を試みました。アンドロイドでイメージをもっと速くダウンロードする方法Volley/Picasso/Glide他の?

ピカソ:

Picasso.with(context).load(image).into(holder.image); 

グライド:

Glide.with(context).load(image).into(holder.image); 

ボレー:

imageLoader.get(image, new ImageLoader.ImageListener() { 
     @Override 
     public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) { 
      holder.image.setImageBitmap(response.getBitmap()); 
     } 

     @Override 
     public void onErrorResponse(VolleyError error) { 

     } 
    }); 

間違いなく、すべてのこれらの方法では、高速インターネット接続で非常によく働いています。 2Gでは20kb〜25kbのイメージをダウンロードするには時間がかかりすぎます。 イメージのサイズ変更なども試しました。しかし、それから良い結果を得ることはありません。 AmazonやFlipkartのようなアプリケーションや電子商取引のアプリケーションが見られました。これらのアプリケーションは低速インターネット接続でうまく動作しており、すべての画像も良好な解像度で表示されます。だから、私はこれらの問題に関するいくつかの専門家の解決策が必要です。

+0

あなたは[フレスコ](http://frescolib.org/)で試すことができます – kId

+0

このライブラリを使用すると、画像をダウンロードするのに時間がかかり、その後、自動的に画像を読み込みます。 – Rajesh

+0

checkstackoverflow.com/questions/29363321/picasso-vs-imageloader-vs-fresco-vs-glideあなたはフレスコ画を試すことができます – Rajesh

答えて

2

グライド、ピカソはサーバーからイメージを取得して表示します。ネットワークの速度が遅い場合、画像の読み込みに時間がかかります。サーバー側でイメージのサイズを変更する必要があります。 JPEGまたはPNGの代わりにWebP形式を使用すると、画質を低下させずにサイズを縮小できます。

注:Thumborを使用すると、これを簡単に行うことができます。

+0

ありがとうございます。私はこれを試してみる。私も電子商取引プロジェクトを持っています。今、このプロジェクトでは20枚しかないので、これらすべてのフォーマットを簡単に変更することができます。しかし、電子商取引で何をするには、約1個のlac製品があります。私はこれらすべてのイメージのフォーマットを変更することはできません。だからそれで何をするか。 –

+0

は、親指のようなものを使用します。答えを更新しました –

0

クリックして個別の画像をダウンロードして、sdcardに保存する必要がある場合。それらのために、AndroidのDownLoadManagerクラスが完璧で簡単なソリューションです。または、Webからアプリケーションに画像のヒープを表示したい場合、Universal Image LoaderはVolleyとPicassoと同じように便利です。画像をより速くダウンロードするには、サイズを小さくする必要があります。サーバ側でJpegまたはPNGの代わりにWebP形式を使用します。

0

キャッシュが不要で、ネットワークから直接ダウンロードする場合は、Picassoをお勧めします。キャッシュが必要な場合は、イメージ(または大きなイメージ)にAQueryを使用します。 AQueryには複数のキャッシュオプションがあります。

関連する問題