1

構文ハイライターの作成方法を学んでいます。テキストの一部のテキストの色を変更し、残りをデフォルトの色のままにする方法を教えてください。

私が言いたいのは、ほとんどの IDE が行うことと同様のことを行うということです。キーワードを強調表示し、他のキーワードを黒色にします。

Android EditText、または他のビューでこれを行うにはどうすればよいですか?

4

3 に答える 3

3

「EditText」を IDE (つまり、Eclipse) のように動作させたい場合は、別の色にしたい単語のリストを定義してから、次のような関数を追加する必要があります。

EditText et = new  EditText(mContext);
et.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub

    }

    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub

    }
});

次に、「spanable」クラスを使用してキーワードに色を付けます。

Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");        

wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
et.setText(wordtoSpan);

キーワードの開始インデックスと終了インデックスを見つけるロジックを実装し、文字列を繰り返し処理して必要な各アイテムの色を設定する必要があります。

于 2013-08-27T09:20:57.413 に答える
2

このようなhtmlフォームを使用できます。

textView..setText(Html.fromHtml("<font size="5">Here is a size 5 font</font>"));
textView..setText(Html.fromHtml("<font color="#990000">This text is hex color #990000</font>
<br />"));
于 2013-08-27T08:24:48.773 に答える
1

確認してくださいSpannbleStringBuilder

詳細: Android: TextView.setText() を使用して文字列の一部を色付けしますか?

于 2013-08-27T08:12:37.017 に答える