バリデーションエラー時、ビューに注目させる

バリデーション処理を実施した際に、エラーが発生したビューが一目で判るようにしたい。
JFC/Swingや.NET WindowsFormsでは背景色を変えたり、そのビューに関連付けられた文字列の色を変えたりという処理を書いてきたが、Androidの場合、ビューに対してアニメーション効果を付加することが可能なため、それを使うと印象的な演出を追加できる。

下記のコード片は拙作のフレームワークのバリデーションエラー時に呼ばれるメソッドだ。

setErrorメソッド
static final AlphaAnimation animation = new AlphaAnimation(1, 0.1f);

CharSequence errorMessage;

public void setError(final CharSequence message, final View... views) {
    this.errorMessage = message;
    if ( views != null &&  views.length > 0 ) {
       this.getActivity().runOnUiThread(new Runnable() {
            @Override
            public void run() {
                for ( View v : views ) {
                    animation.setDuration(500);
                    animation.setRepeatCount(1);
                    v.startAnimation(animation);
                    v.requestFocus();
                    break;
                }
            }
        });
    }
    this.notificationError(message);
}

このコードを実行するとステータスライン(上部タイトルバー)にエラーメッセージを表示し、その後アニメーション効果を実行する。アニメーションにはAlphaAnimationクラスを使用しており、実行すると0.5秒で透過度が1から0.1まで変化しそれを繰り返す。結果として対象のビューが点滅して見える。

実行時のEditTextビューの透過度の変化 (模式図)

初回
繰返時

Androidのビューで使用できるアニメーションは非常に強力な道具なのだ。