بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

رنگی کردن(های لایت) بخش خاصی از متن در TextView

مدیریت گفتگو
iSheykhi 12 سال پیش
آخرین تغییر: 12 سال پیش

با سلام

برای اینکه بخش خاصی از یک متن رو به صورت رنگی نشون داد از چه روشی می شه استفاده کرد

مثلا هنگام جستجو در یک متن، کلیدواژه با رنگ متفاوتی نمایش داده بشه

نظرات

پاسخ‌ها 2

Spirit 12 سال پیش

SpannableString text = new SpannableString("Iam an example for spannable string ");

// عدد 0 ایندکس شروع رنگی کردن و عدد 3 هم ایندکس پایان رنگی کردن و عدد 0 بعدی رو نمیدونم
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 3, 0);

نظرات

محمد حسین زاده 12 سال پیش

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);
}

نظرات

Spirit 12 سال پیش
لایک دوباره - قسمت دوم جواب رو الان دیدم :)
سامان پاپی 12 سال پیش
عکسی رو که گذاشتید نمایش نمیده لطفا درستش کنید

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .