2016-09-07 16 views
-2

私はこの話題についてかなり多くのことを読んできましたが、それでもかなり明確ではありません。現時点では、アプリケーションを作成して、画像とテキストを1つの画面に読み込んでいます。画像を読み込むために私はGlideを選択しましたが、どこから読み込むのが最適ですか?私が渡したチュートリアルはすべて画像のURLを渡します。それはネットからロードされたときに遅くないのですか?どうもありがとう!どこの画像をAndroidアプリに保存する必要がありますか?

+0

あなたは –

+0

グライドが画像をロードするための優れたツールですキャッシュイメージのフレスコ画、ピカソ、nestrol imageloaderを使用することができ、初めてそれ私が従うシステムは、このようなものです遅くロードされますが、次回以降は前回より高速に読み込まれます。画像をキャッシュします。キャッシュ手法を実装するには、LRUキャッシュ – Hanuman

答えて

2

apk sizeを気にしている場合は、これらの画像を入れないでください。static代わりに、これらの画像をserver(あなたまたは無料のサーバ)に保存して、GlideまたはPicassoのようなライブラリを使用してそれらの画像を簡単に読み込むことができます。

ネットからロードすると遅くなるわけではありませんか?

いいえ。イメージを一度ダウンロードしてから、今後使用するためにキャッシュします。それはとても速いです。

apk sizeはあなたにとって問題ではないと思うし、インターネットが利用できないためにユーザーが問題に直面してはいけないと思うなら、あなたはその画像をアプリ内で静的に保つことができます。

+0

@ user6456773を編集してください。 – Nikhil

+0

説明のためにありがとう、indramurari!画像を保存できる無料のサーバーの例を教えてください。 – user6456773

+0

@ user645677 [aws server](aws.amazon.com/webapps)や[imgur](imgur.com/)などに画像を保存することができます。多くの無料画像ホスティングサーバがあります。あなたもgoogleでそれを取得します。 – Nikhil

1

動的イメージを使用するアプリケーションを作成する場合や、アプリケーションを更新せずにイメージを更新する場合は、サーバーから取得する方が良い方法です。そして、私のオプションでピカソは使いやすく簡単です。また、独自のフレームワークキャッシュを使用します。しかし、イメージが変わっていないと思ったら、それらをアセットフォルダに入れて、アプリケーションの内部メモリに保存してください。サーバーから取得することは、プレースホルダイメージを使用する必要があるような短所があります。これは、すぐには取得されないためです。

1

画像を常にネットワークから取得するには、キャッシング機構を使用する必要があります。 (PS Iは高速で信頼性の高いピカソを、使用しています。)::

Picasso.with(this).load(URL).networkPolicy(NetworkPolicy.OFFLINE). //load from cache first time 
       into(imageView, new Callback() { //Picasso Callback 
        @Override 
        public void onSuccess() { 
         if(isNetworkAvailable()) { // if network available then update the cache for this URL 
          Picasso.with(MyActivity.this).invalidate(URL); 
         } 
         progress.setVisibility(View.GONE); // Progressbar 
        } 

        @Override 
        public void onError() { // Image not loaded, try again one last time 
         Picasso.with(MyActivity.this).load(URL).into(imageView, new Callback() { 
          @Override 
          public void onSuccess() { 
           progress.setVisibility(View.GONE); 
          } 

          @Override 
          public void onError() { 
           progress.setVisibility(View.GONE); 
          } 
         }); 
        } 
       }); 
+0

Picassoに移って、説明のためだけでなくコードスニペットにも感謝します:) – user6456773

関連する問題