2016-06-21 14 views
1

私はAndroidでタイピングゲームを作っています。ユーザーが入力しなければならない文章をテキストビューに表示します。ユーザーが入力しなければならない現在の単語に下線が引かれ、ユーザーが単語を終えると、その単語は入力にかかった時間に基づいて色が変わります例えば5秒超過=赤、< 5秒が緑色)。Android TextViewのテキストの色に下線を付けて変更する

私の質問は、テキストビューで単語の色に下線を付けたり、変更して、新しい単語に下線を引くと、前の単語の色を維持することができますか?

現在、私はこのように、私は次の単語

String texts = myTextView.getText().toString(); 
// put the next word to be underlined between <u> </u> tags 
myTextView.setText(Html.fromHtml(texts)); 

あなたが見ることができるように、それは次の単語に下線を引きますが、前の単語の色の全てがなるに移動するたびに、いくつかのことをやっています失われたが、私はそれらを保持したい。

ありがとうございました!

編集:私のテキストはすでに修正されており、ユーザーは表示されている単語を入力する必要があります。たとえば、「サンプル文Hello」という文があります。最初に「サンプル」に下線が引かれ、「センテンス」に下線が引かれ、「サンプル」が赤または緑に変わり、「ハロー」に下線が引かれ、「サンプル」および「センテンス」がそれぞれ時間の経過に応じて赤または緑に変わったユーザーは各単語を入力できます。

+0

を使用して作成するには、この方法を試してみてください。 http://stackoverflow.com/questions/3282940/set-color-of-textview-span-in-android –

+0

@ K.Gandhiありがとう、私はそれを参照してください、私は各単語の開始エンドインデックスを格納する必要がありますSpannableを使用します。そうですか? – Nguyen

+0

はい、あなたはそれに行くことができます。それは単なる基本的な考えです...あなたはそれを掘り起こしてより簡単に作業する必要があります。 –

答えて

0

下線あなたはSpannableクラスで行くべき

<resources> 
    <string name="your_string"> 
     This is an <u>underline</u>. 
    </string> 
</resources> 

のJava

TextView tv = (TextView) view.findViewById(R.id.tv); 
SpannableString content = new SpannableString("Content"); 
content.setSpan(new UnderlineSpan(), 0, content.length(), 0); 
tv.setText(content); 

や塗料

txt.setPaintFlags(txt.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); 
+0

ありがとうございました。私は何かを得ているが、それは私が心に持っているものではない。私は一度にテキストから1つの単語だけに下線を付けたり、色を変えたり、次のものに移動するときに前の単語の色を変えたりしたい。 – Nguyen

+0

私は文字列として別の単語を取ったり、配列を作成してからspannableを使って色を適用することをお勧めします –

+0

はい、私は文章を配列に分割すると思います。ありがとう! – Nguyen

0

TextViewにプログラムで設定できます。

if elseのような状態です。

if(time > 5){  
    String texts = myTextView.getText().toString(); 
    myTextView.setText(texts); 
    myTextView.setPaintFlags(textview.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); 
    mTextView.settextColor(Color.parsecolor("#FF0000")); 

}else { 
    String texts = myTextView.getText().toString(); 
    myTextView.setText(texts); 
    myTextView.setPaintFlags(textview.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); 
    mTextView.settextColor(Color.parsecolor("#0000FF")); 
} 
+0

ありがとうございますが、一度に下線を付けて色を1ワードずつ変更するにはどうすればよいですか?たとえば、テキストビューに「サンプル文」という文があり、「サンプル」に下線が引かれ、「センテンス」に下線が引かれ、「サンプル」が赤または緑に変わります。 – Nguyen

+0

@Nguyenあなたは 'text'を' static'としたり、 'User'で書くことができます。 – Ironman

+0

私のテキストは静的 – Nguyen

関連する問題