1

私は現在ダウンロードキャッシュをテストしていますが、これは本当に素晴らしいようです。

このプラグインに関していくつか質問があります (私は C# にかなり慣れていないため、プラグインの完全なソース コードを理解していません)。

1) プログレスビュー

画像が読み込まれるまで、画像にプログレスビューを表示したいと思います。そのためには、画像が読み込まれたときに通知を受ける必要があります。

「MvxImageViewLoader」には、アクション「afterImageChangeAction」(デフォルトではnull)があることがわかります。しかし、「MvxImageView」からそのアクションにアクセスできるかどうか、またどのようにアクセスできるかがわかりません。(設定方法)

2) 古い画像を読み込まない

iOS でテーブルまたはセレクションビューを使用する場合、画像を設定する前に URL が変更されていないかどうかを確認することが重要です (iOS はオブジェクトを再利用するため)。downloadcache のソース コードを見ましたが、このチェックがありません。

ただし、「MvxDynamicImageHelper.cs」クラスでは、新しい URL が設定されると、「ClearCurrentHttpImageRequest();」が呼び出されることがわかります。これにより、「更新」イベントが削除されます。

画像が間違った UIImageView に設定されるのを防ぐにはこれで十分だと思いますか?

3) (メガ) バイト単位の ImageCache サイズ

ImageCache には、永続的なイメージ ストア (HD 上) の最大サイズ (メガバイトなど) を定義するプロパティがありません。ユーザーは、アプリによって保存されるファイルの数ではなく、アプリが使用するスペースの量を気にするため、ファイルの最大量ではなく (メガ) バイト単位の最大サイズを使用することを好みます。

私にとって最も簡単なのは、MvxFileDownloadCache のものとは独立した「TimeSpan PeriodSaveInterval」を定義して、画像キャッシュまたはその他の推奨事項に対して定義されたフォルダーのサイズを確認することだと思いますか?

フォルダーをスキャンして、フォルダー内のすべての画像のサイズを計算するのはパフォーマンスに危険ですか?

よろしく、マット

4

2 に答える 2

1

1) プログレスビュー

画像が読み込まれるまで、画像にプログレスビューを表示したいと思います。そのためには、画像が読み込まれたときに通知を受ける必要があります。

DefaultImagePathロード中に表示される画像のパスを提供する があります。

ただし、動的なアニメーションやその他のカスタム ビューが必要な場合は、afterImageChangeAction使用できます。

これまで見てきたように、 ではこれを行うことはできませんMvxImageView- はAction実際にはバインド可能なプロパティとして適切な候補ではなかったため、プロパティとして公開されませんでした。

ただし、次のことができます。


コールバックを使用する代わりに、Actionメソッドを継承してメソッドMvxBaseImageViewLoader<T>のオーバーライドを提供することもできます。 cs#L49ImageHelperOnImageChanged

2) 古い画像を読み込まない

3) (メガ) バイト単位の ImageCache サイズ

MvvmCross のインターフェース駆動型およびプラグイン構造は、代替手段を実装できるように定義されています。

HTTP から画像を読み込む場合、多くの代替手段があります。画像の読み込みに MvvmCross ダウンロード キャッシュを使用する必要はありません。

現在、ダウンロード キャッシュ プラグインで利用できる唯一のドキュメントはhttps://github.com/slodge/MvvmCross/wiki/MvvmCross-plugins#downloadcacheです。

Android の場合、代替実装の提案がいくつかリストされています: https://github.com/slodge/MvvmCross/issues/416

iOS の場合、次のセクションを含むhttps://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.htmlを読むと役立つ場合があります。<Application_Home>/Library/Caches

于 2013-09-27T07:09:03.127 に答える
0

Stuart がすでに優れた回答を提供していることは知っています。しかし、まったく同じ機能が必要なときに私がしたことは、MvxImageView をサブクラス化し、UIImageView.Image プロパティをオーバーライドすることでした。画像が設定されると、viewcontroller によってキャッチされるイベントが発生します。

于 2013-10-15T08:35:37.620 に答える