[Android] 한 글자씩 CustomTextView

9447 단어 Android
Github/android-char-by-char-textview
하나의 문자를 표시하는 View

원자재


http://www.ore-memo.com/813.html
설치는 사이트에서 소개한 바와 같다.
사용자 정의 보기로 정리되었습니다 CharByCharTextView.

사용법


사용CharByCharTextView.
사용하고 있다android.os.Handler.
CharByCharTextView 표시
- startCharByCharAnim () 호출 시 텍스트 애니메이션 시작
-setTargetText(String target)로 표시되는 문자열을 설정할 수 있습니다.
- 표시 간격INTERVAL = 2의 값을 변경하여 변경할 수 있습니다.

간단한 사용법


Step1 ~ Step3

Step1


아래쪽을 복사하다.
CharByCharTextView.java
public class CharByCharTextView extends TextView {
    String defautText = "文字列を1文字ずつ出力するテスト";
    private static int TIMEOUT_MESSAGE = 1;
    private static int INTERVAL = 2;

    // Meta Data
    int i = 0;
    String putWord = "";
    String putText = "";

    public void startCharByCharAnim() {
        initMetaData();
        handler.sendEmptyMessage(TIMEOUT_MESSAGE);
    }

    public void setTargetText(String target) {
        this.defautText = target;
    }

    public CharByCharTextView(Context context) {
        super(context);
    }

    public CharByCharTextView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public CharByCharTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    private void initMetaData() {
        i = 0;
        putWord = "";
        putText = "";
    }

    // 文字列を一文字ずつ出力するハンドラ
    private Handler handler = new Handler() {
        @Override
        public void dispatchMessage(Message msg) {
            // 文字列を配列に1文字ずつセット
            char data[] = defautText.toCharArray();

            // 配列数を取得
            int arrNum = data.length;

            if (i < arrNum) {
                if (msg.what == TIMEOUT_MESSAGE) {
                    putWord = String.valueOf(data[i]);
                    putText = putText + putWord;

                    setText(putText);
                    handler.sendEmptyMessageDelayed(TIMEOUT_MESSAGE, INTERVAL * 50);
                    i++;
                } else {
                    super.dispatchMessage(msg);
                }
            }
        }
    };
}

Step2


layout 파일에 추가

Step3


MainActivity.java
// MainActivity とかで...
// メンバ変数として...
CharByCharTextView mCustomTextView;

// onCreate とかで....
mCustomTextView = (CharByCharTextView) findViewById(R.id.customTextView);
mCustomTextView.setTargetText("表示させる文字");
mCustomTextView.startCharByCharAnim();

좋은 웹페이지 즐겨찾기