2016-08-20 5 views
0

コードラインBを何度も呼び出すアンドロイドアプリを書いています。Android:imageViewの画像をキャッシュする

したがって、パフォーマンスの理由から/画像を 'image123'のどこかにキャッシュしたいと思います。アプリケーションを高速化し、一度ロードしてからキャッシュから何とか表示するだけです。

これを何度もロードせずに達成する方法はありますか?誰か知っていますか?

画像が常に表示されるようにinvalidate()(コードラインC)を呼び出すことは重要ですか?イメージがimageViewに正確に表示される時期はどうすればわかりますか?

ご協力いただきありがとうございます。

// codeline A 
ImageView imageView = (ImageView) this.findViewById(R.id.imageView); 
// codeline B 
imageView.setImageResource(R.mipmap.image123); 
// codeline C 
imageView.invalidate(); 
+0

このような用途には、svgイメージファイルを使用できます。 Svgは最初に使用されたときに読み込まれ、毎回そのキャッシュで使用されます。 –

+0

あなたの助けに感謝のコードクラッシャー。チュートリアルやsvgイメージの使用例がありますか? – MBot

+0

あなたの画像をベクトル画像に変換するだけです。それらは.xmlファイルになります。それらを_drawable_フォルダに入れてください。 .pngファイル(@ drawable/my_svg)に適用するだけです:) –

答えて

0

何度も何度もそれをロードせずにこれを達成する方法はありますか?

そのための公式のチュートリアルがあります:https://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

はそれだけでイメージが常にすぐに表示されていることを確認する(コードラインC))(無効呼び出すことが重要ですか?

いいえ、新しい画像リソースを設定するだけで、自動的に再描画が行われます。

画像がimageViewに正確に表示されるタイミングはどうすればわかりますか?

View.postを使用すると、描画が終了するとすぐにコードを実行できます。

+0

あなたの答えはありがとうF43nd1r。 たとえば、アプリを起動してからキャッシュから毎回表示する場合や、言及したキャッシュビットマップチュートリアルのすべての手順を実行する必要がある場合など、Drawableに画像を保存する方が簡単ですか? Viewから正確にpostメソッドを使用するにはどうすればよいですか? – MBot

+0

簡単な方法は、ビットマップを自分でキャッシュしないことです。これは通常の方法です。 view.postを、画像が表示された後に何をしたいのかを実行するRunnableで呼び出す必要があります。 – F43nd1r

関連する問題