4

私は TextView を持っており、毎秒単語内の別の文字を強調表示したいと考えています。

例: ハロー-ハロー-ハロー-ハロー-ハロー

私がやった事:

int i = 0;
String text;
Handler handler = new Handler();

public void spanText(String txt) {
    text = txt;
    for(int i=0; i<text.length(); i++) {
        handler.post(runnable);
    }

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        Spannable spannable = Spannable.Factory.getInstance().newSpannable(text);
        StyleSpan style = new StyleSpan(Typeface.BOLD);
        spannable.setSpan(style, i, i+1, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
        bestResult.setText(spannable, BufferType.SPANNABLE);
        i++;
        if(i < text.length())
            handler.postDelayed(runnable, 5000);
    }
};

残念ながら機能せず、最後の文字が強調表示されているだけです。

前もって感謝します。

4

1 に答える 1

3
int i = 0;
String text;
Handler handler = new Handler();

public void spanText(String txt) {
    text = txt;
    handler.post(runnable);

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        Spannable spannable = Spannable.Factory.getInstance().newSpannable(text);
        StyleSpan style = new StyleSpan(Typeface.BOLD);
        spannable.setSpan(style, i, i+1, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
        bestResult.setText(spannable, BufferType.SPANNABLE);
        i++;
        if(i < text.length())
            handler.postDelayed(runnable, 5000);
    }
};
于 2013-06-30T16:02:37.990 に答える