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

  نحوه تغییر رنگ قسمتی از متن در بیسیک فور اندروید

با عرض سلام خدمت شما دوستان و همراهان عزیز !

در این قسمت قصد داریم کتابخانه RichString را به شما معرفی کنیم که با استفاده از آن به راحتی میتوانید رنگ قسمتی از یک متن را تغییر دهید ! برای مثال ما یک String ( رشته متنی ) به شکل زیر داریم :

Dim str As String
str = "در وبسایت بیسیک لرن آموزش برنامه نویسی اندروید به صورت رایگان ارائه میشود !"

اگر این متن را به صورت مستقیم روی یک Label قرار دهید تنها یک رنگ را میتوانید روی آن تنظیم کنید ولی ما میخواهیم در متن بالا مثلا کلمه “بیسیک لرن” با رنگ آبی و کلمه “رایگان” را رنگ قرمز در برنامه نمایش داده شود . برای اینکار میتوانید از کتابخانه RichString استفاده کنید ! ابتدا باید قسمت هایی از متن که میخواهید رنگ آنها متفاوت باشد را علامت گذاری کنید :

در وبسایت {b}بیسیک لرن{b} آموزش برنامه نویسی اندروید به صورت {r}رایگان{r} ارائه میشود !

در متن بالا کلمه بیسیک لرن را با “{b}” علامت گذاری کرده ایم یعنی میخواهیم تمامی کلماتی که با حرف b علامت گذاری شده اند آبی باشند ولی گاهی مواقع ممکن است متن ما طولانی باشد و اگر بخواهیم به صورت دستی علامت گذاری کنیم کار سختی است . راه ساده تر این است که متن را بدون هیچ گونه علامت گذاری در String تنظیم کنید و برای علامت گذاری قسمت های مورد نظرتان از دستور Replace استفاده کنید :

str = str.Replace("بیسیک لرن","{b}بیسیک لرن{b}")
str = str.Replace("رایگان","{r}رایگان{r}")

حالا کتابخانه RichString را فعال کنید و رشته متنی ( String ) را به این کتابخانه معرفی کنید ( ما نام آن را str گذاشته ایم ) و رنگ مورد نظرتان را با استفاده از گزینه Color2 روی متن مورد نظرتان تنظیم کنید ( با استفاده از علامتی که روی آن قرار داده اید ) :

Dim rs As RichString
rs.Initialize(str)
rs.Color2(Colors.Blue,"{b}")
rs.Color2(Colors.Red,"{r}")

کافیست فقط این متن را روی یک Label تنظیم کنید و البته قبل از آن لازم است یک رنگ اصلی روی Label تنظیم کنید ( برای متن های عادی که علامت گذاری نشده اند )

Label1.TextColor = Colors.Black
Label1.Text = rs

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

مطلب پیشنهادی :  کتابخانه HBDateConverter - تبدیل تاریخ در برنامه

به همین آسانی میتوانید رنگ قسمتی از متن را در بیسیک فور اندروید تغییر دهید !

در پایان امیدواریم که این مطلب هم مورد استفاده شما عزیزان قرار گرفته باشد , کتابخانه RichString را همراه با سورس میتوانید از لینک زیر دریافت کنید :

دانلود فایل : فقط اعضای سایت میتوانند به لینک دانلود دسترسی داشته باشند ( وارد شوید یا ثبت نام کنید )
  دانلود با لینک مستقیم
  رمز فایل : basiclearn.ir ( با حروف کوچک تایپ شود )
  حجم فایل : 418 کیلوبایت
  منبع : بیسیک لرن

 
این آموزش به درخواست کاربران سایت منتشر شده است . در صورتی که آموزش موردنظرتان در سایت وجود ندارد از طریق این لینک به ما اطلاع دهید تا در کمترین زمان مطلب مورد نظرتان را در سایت منتشر کنیم !

ما را در تلگرام دنبال کنید !
BasicLearn@

درباره نویسنده

حامد باقری

برنامه نویس اندروید , طراح وب , طراح گرافیک و رابط کاربری
( مدیر مجموعه بیسیک لرن )
www.HamedBagheri.ir

۶ نظر

  • با سلام و وقت بخیر خدمت شما و تشکر واسه مطالب خوبتون.
    ببخشید من یه کتاب ساختم با دیتابیس آفلاین که شامل تعداد زیادی از آیات قرآن کریم همراه ترجمه هست. حالا اگه بخوام فقط رنگ ترجمه‌ها رو تغییر بدم چطور میشه از این کتابخانه استفاده کرد؟
    ممنون میشم راهنمایی بفرمایید

    • سلام .
      آیه و ترجمه ستون های جداگانه در دیتابیس دارند یا در کنار هم هستند ؟ اگر ستون های جداگانه داشته باشند که به راحتی میشه این کار را انجام داد ولی اگر در کنار هم باشند حروف فارسی و عربی را نمیشه از هم تشخیص داد ( چون که شبیه به هم هستند ) و با کتابخانه RichString نهایتا میتوانید علامت های حروف عربی (اعراب ) را تغییر رنگ بدید …

  • پیدا کردم. این کتابخانه که شما قرار دادید ۱.۴ هست، ورژن جدیدش که قابلیت ست کردن فونت سفارشی رو داره ورژن آخر یعنی ۱.۵ هستش

  • سلام
    ببخشید امکانش هست از این کتابخانه و csbuilder به طور همزمان رو یه متن یه لیبل استفاده کرد؟ مثلا به صورت زیر:
    Label.Text= rich
    Label.Text = cs
    چون من که استفاده کردم فقط یکی عمل می‌کنه یا csbuilder یا richstring

    • سلام . برای اینکار اول باید از richstring استفاده کنید و بعد اون را روی csbuilder تنظیم کنید :

      Dim rs As RichString
      rs.Initialize("این متن برای {r}تست{r} میباشد ")
      rs.Color2(Colors.Red,"{r}")
      Dim cs As CSBuilder
      cs.Initialize.Typeface(Typeface.LoadFromAssets("aviny.ttf")).Append(rs).PopAll
      Label.Text = cs
      

      در کد بالا رنگ کلمه “تست” قرمز تنظیم میشه و با استفاده از csbuilder هم میتونید فونت را تغییر بدید یا تنظیمات دیگه را روی متن پیاده کنید و در پایان متن را روی لیبل نمایش بدید .
      ( البته فونت را با RichString هم میتوان تغییر داد )

نظر بدهید

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.