問題タブ [picasso]

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.

0 投票する
2 に答える
1911 参照

android - Android のメモリ管理: 画面密度、要求された画像サイズ、使用可能なヒープ

Android-Bitmap-OOM に関するもう 1 つの質問です。

バックグラウンド

私たちのアプリケーションをストレステストしている間、持続的で大量の使用 (モンキーランナーのような) の後、OutOfMemory例外が後続のスタックトレース内に記録された後、アプリのプロセスメモリ割り当てを最大化することが可能であることが指摘されました。の下のページを選択すると、アプリは画像を (一度に約 3 つ) ダウンロードしますViewPager。アプリの長さと息吹が行使されると、280 以上の画像をダウンロードできる場合があります。このアプリケーションは、画像ダウンロードの抽象化にSquare の Picasso を使用します。特に、私たちのアプリケーションのコードでは、ビットマップを直接操作している箇所はありません... 非常に才能のある Square Inc. の従業員が、私たちよりもうまくやっていると信じています。

ここに写真があります

dalvikvm-heap以下のプロットは、ログ メッセージの下に記録された時間の経過に伴うヒープ割り当てを示しています。赤い点は、未処理の作業量を増やしてアプリにストレスをかけるために、ユーザーが新しい一連の記事をアプリケーションに持ち込んでいることを示しています...

DALVIKVM のヒープ割り当て http://snag.gy/FgsiN.jpg 図 1: Nexus One のヒープ割り当て。OOM は 80MB 以上で発生します

これまでの調査

Nexus S、Nexus 4、Wildfire、HTC Incredible、およびその他の無数のテスト デバイスに対して、事例テストでは、DVM GC がアプリによって完了される重労働作業に「追いつく」ことで、メモリ管理が十分であることが示されました。ただし、Galaxy S II、III、IV、HTC One などのハイエンド デバイスでは、OOM が普及しています。実際、やるべきことが十分にあるとすれば、最終的にはすべてのデバイスで障害が発生するだろうと想像できます。

質問

画面密度 (要求された画像サイズは ImageView のサイズに基づいています)、プロセス メモリの割り当て、特定のサイズでの画像の数の間には明確な関係があり、アプリがそのヒープ制限を超えることになります。私はこの関係の定量化に着手しようとしていますが、SO コミュニティにこの問題に目を向けてもらい、(a) この関係を構築する価値があることに同意または反対し、(b) この関係を作成する最善の方法を示す文献を提供してもらいたいと考えています。

画質を壊すと OOM はすべて消えてしまいますが、残念ながら UX は貧弱です。


補足: 以下は、レイアウトされたビューにこれらの画像をロードするコードの一部です。

上記の「画質のダッシング」は、単にimageView.getMeasured...「4」のような数で割ったものです。

0 投票する
5 に答える
74487 参照

android - Android のローカル画像キャッシュ ソリューション: Square Picasso、Universal Image Loader、Glide、Fresco?

Android で非同期の画像読み込みおよびキャッシュ ライブラリを探しています。Picasso を使用するつもりでしたが、GitHub では Universal Image Loader の方が人気があることがわかりました。これら2つのライブラリについて知っている人はいますか? 長所と短所の要約は素晴らしいでしょう。

(すべての画像はローカルのディスク上にあるため、ネットワークは必要ありません。したがって、Volley は適していないと思います)

0 投票する
0 に答える
250 参照

java - Square Picsso Android ライブラリを使用してカスタム リソースから画像をロードする

私は Picasso android library に非常に興奮しました。picasso を使用したい Android アプリケーションがありますが、アプリケーション内の場所に 1 つの問題があります。

テキストの横に各アイテムの画像を表示するリストビュー(エンドレス)がありますが、リスト内の各アイテムの URL がありません(愚かな API を使用しています)。特定の ID でサーバーにアクセスする必要があります。次に、サーバーから Picasso で使用できる画像の URL が送信されました。

例 :

そして応答は次のようになります

画像の URL をプリロードできません。無限のリストがあり、アイテムごとに Web サービスを呼び出して画像の URL を取得する必要があるためです。

ピカソはこれを処理できますか?

0 投票する
2 に答える
7545 参照

android - アダプタ上の Picasso でのターゲットの使用

アダプター内でターゲットを使用するのに大きな問題があります。コードに関するドキュメントについて混乱しています

このクラスを実装するオブジェクトは、適切な内部ストレージのために {@link #equals(Object)} および {@link #hashCode()} の実用的な実装を持っている必要があります。このインターフェイスのインスタンスも比較され、ビューのリサイクルが発生しているかどうかが判断されます。アダプターで使用する場合は、このインターフェイスをカスタム ビュー タイプに直接追加して、正しいリサイクル動作を確保することをお勧めします。

この方法でターゲットを使用しようとしています:

それは機能せず、画像は互いにランダムに変化します