ボタンなどタッチした時に画像など変化が起きるとタッチした事が分かりやすい。
変化を加えるメソッドを考える。(一番楽な方法)
アニメーションが少し分かったので、view.startAnimation() を利用する。
View.OnClickListener() でイベント発生すると view が渡されるので、その view にアニメーションを施す。
ここでは透明度を変化させている。大きさを変化させれば、よく見るアニメーション。
【fade_in_animation_set.xml】
< ?xml version="1.0" encoding="utf-8"?>
< set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="@android:anim/decelerate_interpolator">
< alpha
android:fromAlpha="0"
android:toAlpha="1.0"
android:fillAfter="true"
android:duration="650" />
< /set>
アクション実体部分。
private final Handler mHandler = new Handler();
public void touchAction( View view ) {
mHandler.post( new Runnable() {
@Override
public void run(){
view.startAnimation( AnimationUtils.loadAnimation( mContext, R.anim.fade_in_animation_set) );
}
} );
}
クリックイベントにアクションメソッドを組み込む。
mButtonClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
touchAction(v); // アクションを呼ぶ
// ボタン処理
}
};
直ぐに場面が変わる時は、変化アニメーションが表示されない。
それが気に入らなければ、遅延処理を組み込んで次の処理をアニメーション終了後に始める。
mButtonClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
touchAction(v);
mHandler.postDelayed(new Runnable() {
@Override
public void run(){
// 処理メソッドを呼ぶ
}
}, 800 );
}
};
image viewer の実機テスト(android OS4.2)でサムネイル画像スクロールはキャッシュ利用で速く表示された。
しかし、ディレクトリ移動モードではタッチから次のディレクトリ内容表示まで時間が遅い。
データ収集の無駄を省き処理時間の短縮を図るがまだ足りない。
そんなに時間がかかる処理には思えないが…。
情報再利用の構造体を構築し、表示データ作成を省く考えが必要か?
情報構造体のデータ収集を別スレッドで行う。
その範囲を決めて自動で収集。
別スレッドの始まりと終わり。
トリガー。保存。運用。などなどを考える。