AndroidのTextViewでテキストの一部をハイライトする方法


  1. Spannableを使用する方法: Spannableは、テキストの一部をスタイル付けしたり、クリック可能にしたりするためのクラスです。以下は、Spannableを使用してテキストの一部をハイライトする例です。
TextView textView = findViewById(R.id.textView);
String fullText = "This is a sample text.";
Spannable spannable = new SpannableString(fullText);
int startIndex = 5; // ハイライトを開始する位置
int endIndex = 12; // ハイライトを終了する位置
spannable.setSpan(new BackgroundColorSpan(Color.YELLOW), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannable);
TextView textView = findViewById(R.id.textView);
String htmlText = "This is a <font color='yellow'>sample</font> text.";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    textView.setText(Html.fromHtml(htmlText, Html.FROM_HTML_MODE_COMPACT));
} else {
    textView.setText(Html.fromHtml(htmlText));
}
  1. RichTextを使用する方法: Android JetpackのComposeライブラリを使用すると、テキストの一部をハイライトすることができます。以下は、RichTextを使用してテキストの一部をハイライトする例です。
@Composable
fun HighlightedText() {
    val text = buildAnnotatedString {
        withStyle(style = SpanStyle(backgroundColor = Color.Yellow)) {
            append("This is a sample text.")
        }
    }
    Text(text = text)
}

これらは、AndroidのTextViewでテキストの一部をハイライトするためのいくつかの一般的な方法です。選択した方法に応じて、適切なコードを選んで使用してください。