آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

iSheykhi  12 سال پیش  11 سال پیش
+3 0

با سلام

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

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

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);
}
0 0
لایک دوباره - قسمت دوم جواب رو الان دیدم :) (12 سال پیش)
0 0
عکسی رو که گذاشتید نمایش نمیده لطفا درستش کنید (11 سال پیش)

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