رفتن به مطلب

آموزش کامل کتابخانه RichString


امیرنیوکی

ارسال‌های توصیه شده

سلام خدمت همه ی بیسیک فور اندرویدی ها


خوب من قرار بود یه کتابخونه ساده تر از این کتابخونه richString بنویسم و بدم بنا به مشکلاتی نشد :((( از همینجا عذرمیخوام از همه


خوب میریم سره آموزش


میخواییم کله یک متن رو رنگشو تغییر بدیم (میدونم روش راحت ترش هست ک مقداد color اون تکست رو تغییر میدین)


**با کتابخانه RichString**


به دو روش میشه


روش اول :


به این صورت هست ک حرف عدد شروع متن و پایان متن رو میدین اون واستون رنگ میکنه



Dim text = "basic4android.org" As String
Dim rs As RichString
rs.Initialize(text)
rs.Color(Colors.Red, 0, text.Length)

روش دوم :


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



Dim text = "basic4android.org" As String
Dim rs As RichString
rs.Initialize("[color]" & text & "[color]")
rs.Color2(Colors.Red,"[color]")

کافیه ک مقدار text ویو خودمون رو مساوی rs قرار بدیم


 


خوب حالا ما میخواییم از بین چندتا کلمه یه کلمه رو برای ما رنگی کنه


 



Dim text = "amir mehdi basic basic4android.org majid nima" As String
Dim strArray() = Regex.Split(" ", text) As String
Dim rs As RichString
Dim rsb As RichStringBuilder
rsb.Initialize
For i = 0 To strArray.Length -1
Dim rs2 As RichString
Dim str As String = strArray(i)
If str = "basic4android.org" Then
rs2.Initialize(str)
rs2.Color(Colors.Red, 0, str.Length)
If i = strArray.Length-1 Then
rsb.Append(rs2)
Else
rsb.Append(rs2)
rsb.Append(" ")
End If
Else
If i = strArray.Length-1 Then
rsb.Append(str)
Else
rsb.Append(str)
rsb.Append(" ")
End If
End If
Next
rs.Initialize(rsb)
Label1.Text = rs

حالا اگه میخوایین از روش دوم استفاده کنین کافیه از rs2.Color2 استفاده کنین مثله کدی ک اول نوشتم واستون


 


حالا میخواییم یک حرف رو از کله یه رشته در تمامیه کلمات رنگی کنیم برای اینکار من از روش دوم میرم ک یه مثال هم از روش دوم داشته باشیم



Dim rsb As RichStringBuilder
rsb.Initialize
Dim rs As RichString
Dim text = "amir mehdi basic basic4android.org majid nima" As String
Dim strArray() As String = Regex.Split(" ", text)
For i=0 To strArray.Length -1
Dim str As String = strArray(i)
For j=0 To str.Length -1
Dim rs2 As RichString
Dim c As String = str.CharAt(j)
If c = "a" Then
rs2.Initialize("[c]" & c & "[c]")
rs2.Color2(Colors.Red,"[c]")
rsb.Append(rs2)
Else
rsb.Append(c)
End If
Next
rsb.Append(" ")
Next
rs.Initialize(rsb)
Label1.Text = rs

یه سوال پیش میاد ! میگین چرا از RichStringBuilder استفاده کردم چرا از String استفاده نکردم


جواب : زیرا richstringbuilder میتونه عملاتی ک توسط richstring روی string انجام شده رو تو خودش نگه داره شما نمیتونین از یه استرینگ برای نگه داشتن تنظیمات richstring بشین


خوب اینم فقط یه حرف رو رنگی میکنه از بین کلمات در کله رشته


یه توضیح بدم !


کتابخونه richstring خیلی کارها باش میشه کرد ک ما اینجا فقط از رنگ کردن متن استفاده کردم


کار با richStringBuilder رو یاد گرفتیم


یه RichStringFormater هم داره ک نمیدونم قضیه اش چیه :oops:


میتونیم حتی حرف یا کلمه مورد نظر رو توی ویو مورد نظر بالا پایین کنیم روش خط بندازیم ، زیرش خط بندازیم ، اندازه حروف رو بزرگتر کنیم و ...


ک میزارم به عهده خودتون


اگه کسی یه سورس در همین رابطه بنویسه خیلی عالی میشه


 


آموزش از انجمن بیسیک فور اندروید


کتابخانه RichString رو پیوست میکنم با رمز : basic4android.org


 


Richstring www.basic4android.org.rar

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 ماه بعد...

تشکر از آموزش فقط یه سوال

حالا اگر بخوایم متن رو از دیتابیس بگیریم چی

به طور مثال متن ما از دیتابیس خونده میشه و داخل یه لیبل قرار میگیره فرضا با دستور زیر:

("Ltxt.text= cur.GetString("text

 

حالا اگر متن من طولانی باشه، مثلا یک صفحه باشه و  بخوایم فرضا خط اول، چهارم، دهم و بیستم رو استایل بدم باید چه کار کنیم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 سال بعد...

ممنون از آموزش خوبی که گذاشتید

فقط یه نکته:

اگر بخوایم پوزیشن اسکرول ویو هم به اون قسمتی که متن رنگی شده بره باید چکار کرد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...