بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
رنگی کردن(های لایت) بخش خاصی از متن در TextView
با سلام
برای اینکه بخش خاصی از یک متن رو به صورت رنگی نشون داد از چه روشی می شه استفاده کرد
مثلا هنگام جستجو در یک متن، کلیدواژه با رنگ متفاوتی نمایش داده بشه
0
0
html هم خوبه برای نتایج جستجو (12 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
Spirit
12 سال پیش
+7
0
SpannableString text = new SpannableString("Iam an example for spannable string ");
// عدد 0 ایندکس شروع رنگی کردن و عدد 3 هم ایندکس پایان رنگی کردن و عدد 0 بعدی رو نمیدونم
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 3, 0);
پاسخ به سوال
محمد حسین زاده
12 سال پیش
+11
0
setFormat(textView, "this", "this is a this is a this is a this is a ");
private void setFormat(TextView textView, String term, String content) {
content = content.replace(term, "<u>" + term + "</u>");
Spanned sp = Html.fromHtml(content);
textView.setText(sp);
}
شاید ساخت رشته html کمی ساده تر باشه برای نتیجه جستجو
برای حالتی هم که Spirit گفت :
private void setFormat(TextView textView, String term, String content) {
final Pattern p = Pattern.compile(term);
final Matcher matcher = p.matcher(content);
final SpannableStringBuilder spannable = new SpannableStringBuilder(content);
while (matcher.find()) {
spannable.setSpan(new ForegroundColorSpan(Color.GREEN),
matcher.start(), matcher.end(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
textView.setText(spannable);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .