2018年6月16日土曜日

IBM CloudのNoSQL DBを使ってみよう ~第5章~(Android:テキストに取消線を入れる)

どうも、もりもりです。

今回は、ListViewの行をタップした際にTextViewのテキストに
取消線を入れる方法について説明します。

下記のTask5やTask7のように、完了したことがわかるように
取消線を入れ、文字色を変更するようにしました。


テキストに取消線を入れる


TextViewとフラグを渡して表示を変更するメソッドを追加します。

TextViewからTextPaintを取得し、そやつに対してsetFlagsするだけです。

public static void changeItemState(TextView textView, boolean flag) {
    TextPaint paint = textView.getPaint();

    if (flag) {
        textView.setTextColor(Color.BLACK);
        // 取消線を入れる
        paint.setFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
    } else {
        textView.setTextColor(Color.WHITE);
        // 取消線を外す
        paint.setFlags(textView.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
    }
    paint.setAntiAlias(true);
}

取消線を入れる場合は「Paint.STRIKE_THRU_TEXT_FLAG(0x10)」とOR演算、
戻す場合は反転ビットとAND演算するだけです。

次回予告


次回 は、ListViewのアイテムにボタンを追加した際に、
アイテム自体のクリックイベントが発生しなくなる場合の解決方法についてです。


ではまた~。

0 件のコメント:

コメントを投稿