2016-06-27 11 views
0

私はAndroidアプリケーションを開発しています。ヘッダー(ImageView)とコンテンツ(別のテキストビュー)を使用してカスタムリストビューを実装しました。すべてのテキストとイメージにリンクするリンクを含む、json。単純な "キャッシュ"のようなイメージローカルストレージを作成する方法

イメージをローカルフォルダにダウンロードし、ローカルフォルダからフェッチするためにインターネットからダウンロードする代わりに、イメージをダウンロードする機能を実装する必要があります。

私が問題にあります。

1)私はJSONの解析中にローカルストレージに画像をダウンロードする機能を実装する必要があります。パーサーが画像を見つけた場合、画像をダウンロードする必要があります。

2)解析後、ダウンロードしたイメージをローカルイメージに関連付ける必要があります。

3)すべてのデータを表示しようとすると、ローカルから画像を表示する必要があります。

(実は私は、インターネットから画像をロードするためにボレーを使用)

私はこれを行うことができますどのように?私は画像やデータ

[ 
     { 
     "date":"MY DATE", 
     "desc":"My description", 
     "id":"1", 
     "img":"http:\/\/MYURL\/FOLDER\/homeone.jpg", 
     "text":" My text", 
     "title":"My title" 
     } 
    ] 

***** EDIT 1 *****

私はピカソのライブラリに問題があるbeetweenリンクを維持することができますどのように、私は私が実装する方法を理解していませんキャッシュ。たとえば、JSONの解析後、JSONアイテムのURLを取得できます。

この場合、http:\/\/MYURL\/FOLDER\/homeone.jpgイメージをローカルストレージに保存する必要があります。

これは私がStackOverflowの別の質問で見つけたコードです。これはキャッシュの作成に役立ちますか?はいの場合、どのようにキャッシュフォルダを指定できますか? ローカルストレージにのみイメージを保存できますか?このキャッシュは「永久」ですか、アプリケーションを再起動するとすべてのデータが削除されますか?

+0

あなたのデータや画像のためのユニークなIDを与え、SQLiteのテーブル内のリレーションを保存します。 あなた自身でデータを保存し、 'com.squareup.picasso' [library](https://github.com/square/picasso)を使ってそれぞれのURLで画像をダウンロードしてキャッシュすることができます。 – comrade

+0

私の編集を見てください1 – Mattia

答えて

0

あなたは、ホイール考案:)

UPD避けるためにPicasso

試しに実装されているachiveしようとしているもの:自動的 ピカソキャッシュ画像を、あなたがすべてで、このことを気にする必要はありません。ただし、この例を試してみると、キャッシュを手動で設定できます。 これはOkHTTPの助けを借りて、あなたのキャッシュを定義する方法です。

OkHttpClient client = new OkHttpClient(); 
     client.setConnectTimeout(connectTimeOut, TimeUnit.SECONDS); 
     client.setReadTimeout(readTime, TimeUnit.SECONDS); 

     File cachePath = FuncFileDownload.getStoragePath(context, "pre"); 
     client.setCache(new com.squareup.okhttp.Cache(cachePath, 30000000)); 

     sPicasso = new Picasso.Builder(context) 
       .downloader(new OkHttpDownloader(client)) 
       .build(); 
     Picasso.setSingletonInstance(sPicasso); 
+0

驚くべきこと、ありがとうございます – Mattia

+0

あなたが満足すれば答えを受け入れてください –

+0

@alexeypolusov私は自分のコードを編集しました。 – Mattia

関連する問題