・Fragment Mainにスクリーンに合わせて画像を拡大縮小させる。
・Subに本来の大きさの画像を表示させる。小さい場合は中央に大きい場合はスクロールさせる。
画像表示アプリで前回利用の画像を記憶して、アプリ再起動で再表示させる。
1:ActivityからMainへ画像のフルパスを渡す。
2:フルパスが存在しファイルか判断。表示不可ならPicturesディレクトリ表示モードへ移行(今回は作らない)。
3:画像をスクリーンサイズに加工(メモリ節約必須)、表示。
4:ダブルタップされたらフルパスをSubに渡してフラグメントを置き換える。
5:スクリーンサイズと画像サイズ。縦横は別々に考慮。
スクリーンより小さい場合は中央に合わせる。大きい場合は左・上に合わせる。
6:Mainにはスクロール以外のジェスチャー組み込み。Subはスクロールとダブルタップのみ。
準備:RecyclerViewのアダプター用リストも考える。
・ターゲットフルパスから親ディレクトリを取得。
・fileListで画像ファイルをリストアップ。
・リストを昇順並べ替え。
・ターゲットディレクトリとファイル名リスト。または、ファイルフルパスリスト。
ターゲットディレクトリとファイル名リストはメモリ消費が少ない。
ファイル名フルパスのリストはメモリ消費が多い。が微妙に処理速度稼げる。
今となってはRecyclerViewのアダプターの引数に何でも指定できると分かったから自由度高い。
MyFileListクラス
データ
・targetDirectory
・fileName[]
メソッド
・fileName[]昇順並べ替え。
・fileName[]のgetName()、getAbsPath()。
・int findName()
ついでに
MyFileListForDirectoryクラス
データ
・targetDirectory
・dirName[]
・fileName[]
メソッド
・dirName[]、fileName[]昇順並べ替え。
・dirName[]、fileName[]のgetName()、getAbsPath()。
・dirName[]+fileName[] > name[]とtype[]に変換。
・name[]とtype[]のget()
Mainでファイル名とその他を用意したら画像を表示。
間にfileName[]からファイル名を取り出すクラス。
MyImageFileクラス
・fileName[]を引数にする
・targetNameからindexNoを求める
・next()prev()
・1枚or2枚表示
・ランド、ポート、1枚、2枚判断
・出力、int[2]か、string[2]
出力が1つか2つで画像合成判断。
1つの時にランドかポートで回転判断。
出力からスクリーンサイズに合わせてBitmap作成。
ImageSwitcherにセットして表示。アニメーションも組んどくか。
ダブルタップの位置から表示画像のパスを求める。
(1画像、2画像)
Subへフルパスを渡して置き換える。
シングルタップ、フリング、ロングタップ処理は後で追加。
フラグメントの操作内容でクラス機能をまとめる。
癒着しないように構造を分かりやすくする。系統化etc.