途中のプロジェクトを再開しました。
Kotlinへの移行は後回し、Javaで形にする。
ただ、サムネイルをキャッシュディレクトリに追加作成する事で再利用の再表示をスピーディーにしている部分をディレクトリ単位で毎回作成に変える事に。
再表示は速いが状況によってはストレージを浪費してしまう。
システムが自動でキャッシュファイルを削除するときアプリが無反応になるのが気持ち悪い。
ので、一般的なディレクトリ単位でサムネイル作成をする。に決めた。
【ディレクトリデータについて再考する。】
ディレクトリの中に
・ディレクトリと画像ファイルがある。
・ディレクトリのみ。
・画像ファイルのみ。
【リストデータを考える。】
・子ディレクトリの中に画像ファイルがあれば、それをサムネイルに使う。
・子ディレクトリに画像ファイルが無い時はリソース画像を使う。
・標的ディレクトリのフルパス。
・内部ディレクトリネームのリスト。
・内部画像ファイルネームのリスト。
・タイプ判別フラグのリスト。
・ネームリストに対応した画像フルパスのリスト。
それぞれのネームのリストを利用してキャッシュディレクトリにサムネイルファイルを用意する。
都合の良い構造体は?
Member {
String name; ディレクトリor画像ファイルの名前
Boolean type; dir = true/ file = false
String imagePath; 画像ファイルのフルパス。画像無しディレクトリは空文字""。
}
DirList {
String TargetDir; 標的ディレクトリのフルパス
Member data[]; データ配列
}
キャッシュディレクトリには、nameをサムネイルファイルの名前にする。
ディレクトリ名+".jpg"でサムネイルファイルが作られる。
すると、ディレクトリと画像ファイルのサムネイルファイルの名前がダブる可能性が出る。
よって、ディレクトリ名+"_directory.jpg"のようにディレクトリの識別情報が必要になる。
データリスト形態は、こんなんで良いかな。
●リストを作る実行部は、
フォルダアイテムを読みだして、ディレクトリの配列、画像ファイルの配列、フルパスの配列を作る。ついでに名前順のソートも行う。
この用意した配列を元に構造体DataListに書き写す。
●サムネイルファイルの作成は、
リサイクルビューの中でDataListを使って有無チェックをし、非同期でサムネイル加工と保存を行う。
時間がだいぶ経ってるから、プログラムのどこをどう変えるのか浮かんでこない(-_-;) 面倒くさいぃぃ。