問題タブ [android-glide]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 結果が表示される前に読み込みを追加します。画像表示にはグライドを使用します
私のコードを構築してください。結果の準備ができていない間に読み込みイメージが必要です..
私はこのコードにグライドを使用します..
私のコードでわかるように、プレースホルダー インデックスローディングを使用しています。
しかし、gifの読み込み画像はプレースホルダーでは機能しません。
私の問題を解決するサンプルコードを教えてください..
フラグメントで動作するコードも..
ここに完全なコードがあります..
HomeFragment.java
android - Android - GC されていないグライド ビットマップ
私たちのアプリには、ナビゲーションを連鎖させる機能があるため、メモリ不足に陥っています。
チェーンとは、1 つのアクティビティと、同じフラグメント タイプのインスタンスを diff データで開くことができる特定のタイプの Fragment があることを意味します。
例: Activity->MyFragment->MyFragment->MyFragment->MyFragment->MyFragment....
このため、このフラグメントには画像のビューページャーとさらにいくつかの画像が含まれているため、最終的にメモリが不足します。
次の2つのSOリンクを見る
Android アプリのメモリ不足の問題 - すべてを試してみましたが、まだ途方に暮れています
Fragment が置き換えられてバック スタックに置かれた (または削除された) 場合、それはメモリに残りますか?
Diane (hackbod) は、onDestroyView でリソースを整理する必要があることを強調しています。
ただし、Android モニターの [メモリ] タブを使用してヒープを hprof ファイルにダンプすると、ビットマップとイメージビューが決して破棄されないことがわかります。
これは Glide と bitmapPool と関係があるのでしょうか? RequestManager を取得するために静的な Gilde.with メソッドのみを使用しているため、これを構成する方法がわかりません。bitmapPools などを構成するためのメソッドがその中に表示されません。
何か案は?
:)
android - Glide Library の詳細
私はGlideライブラリを使用していますが、それについての詳細を知りたいと思っていました。画像全体をメモリにロードしますか?全体を圧縮またはロードしますか?
また、glide のサムネイル機能は、アバターのようなものに使用できるように、画像のアイコン バージョンをロードするだけですか?
android - 画像をキャッシュするために Picasso/Glide を Html.ImageGetter で動作させる方法は?
@Budius の尽力に感謝します。
私のアプリの画像処理の大部分は Picasso/Glide で処理できますが、一部の画像は by で表示さTextView
れHtml.fromHtml
ます。また、 の画像TextView
も頻繁に使用されます。
ただし、渡された togetDrawable()
に対して Picasso/Glide でメソッドを実装する方法がわかりません。これらの画像と他のビットマップの Picasso/Glide の同じキャッシュを共有することは可能ですか?ImageGetter
Html.fromHtml
TextView
または、代わりにカスタムを使用して、これらの画像フォームを個別LruCache
にキャッシュする必要がありますか? ImageGetter
この方法は、OOM エラーのリスクを高めますか? また、画像を処理するために 2 つの異なるシステムを使用することは、不要な作業負荷を生み出すと思います。
更新:ピカソを使用しようとしまし.get()
たが、ドキュメントには次のように書かれています
したがって、この場合、キャッシュは使用されません。
更新:
@Budius の答えは正しいですが、 の境界を設定するコードDrawable
が欠落しているため、Drawable
に表示されませんTextView
。そこで、DrawableWrapper
クラスのコードを次のように変更しました。
更新:、問題はまだ解決されていません。前述のソリューションを実装すると、 の画像に奇妙な動作が発生しTextView
ます。別のアプリに切り替えて元に戻さない限り、画像を更新できず、画像の位置が大幅に間違っている場合があります。
更新:以下のテスト用のすべてのコードを投稿しました。まだいくつかのバグがあります。プレースホルダーがなくても、NPE がスローされます。プレースホルダーを使用すると、動作が非常に奇妙になります。初めて入力するTestActivity
と、プレースホルダーが表示されますが、ダウンロードした写真に変わりません。しかし、別のアプリに切り替えるか、戻るボタンを押してTestActivity
もう一度入力すると、写真が表示されます(キャッシュにあるためですか?)。
また、写真のサイズは正しいですが、画像の場所はまだ残っていません。mDrawable.setBounds(getBounds());
の代わりに呼び出すとmDrawable.setBounds(0,0,getIntrinsicWidth(),getIntrinsicHeight());
、表示されません。
DrawableWrapper
PicassoTargetDrawable
テスト活動
android - proguard、glide 3.6.1、gradle 1.3.1 のエラー
minifyEnabled true で proguard を使用すると、assemblyRelease 中に警告が表示され、ロードに glide を使用するほとんどのイメージがアプリケーションでロードされません。
デバッグ リリースで、minifyEnabled を false に設定すると、すべて正常に動作します。助けていただけますか?
build.gradle
proguard-rules.pro
assembleRelease 中の警告: