رفتن به مطلب
  • 0

زیرخطدار (Underline) کردن EditText در B4A


Ammar

سوال

سلام دوستان

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

کسی می‌دونه که چطور می‌شه متن درون یک ادیت تکست Underline بشه؟

اگه کتابخانه‌ای چیزی هست معرفی کنید ممنون می‌شم.:53:

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

5 پاسخ به این سوال تاکنون داده شده است

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

دستتون درد نکنه

با این توضیحات تونستم آندرلاین اضافه کنم ( با فشردن دکمه 1)

حالا اگه بگید چطور میشه خط زیرشو بردارم ( با فشردن دکمه 2) ممنون میشم :) :53:

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

سلام بااستفاده از Underscore2 در Richstring میتونیداین کارروانجام بدین - نمونش سورس زیرهست :

 RichString

Untitled.png

اینو هم نگاه کنید: 

B4i Library - [class] RichString | B4X Community - Android, iOS, desktop, server and IoT programming tools 

 

البته می تونید از کتابخانه HashGirl هم استفاده کنید  که underline هم داره .(.underline(True))

  hashgirl.Initialize("Hash","Hello, I'm #Super Hash Girl^ in the World. You can hash #every^thing what you want. #I will hash you^").grab3("(#((\w+ *)*)\^)", "^", "#").underline(True).color(Colors.BLUE).bgcolor(Colors.WHITE).into(Label1)

 

ویا ازکتابخانه  TextFlow

B4J Library - [class] TextFlow - Similar to B4A / B4i RichString | B4X Community - Android, iOS, desktop, server and IoT programming tools

 

و یه راه دیگه توی این لینک بهش اشاره شده .

Android Question - EditText with formatted text is possible! | B4X Community - Android, iOS, desktop, server and IoT programming tools

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

دستتون درد نکنه ولی این سورس خیلی پیچیده‌س :fekr:

میشه بگین دقیقا کدوم قسمتش مربوط به آندرلاین میشه؟

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

سلام دوست عزیز،

از نسخه 7.0 به بعد بیسیک، کلاسی به بیسیک اضافه شده تحت عنوان CSBuilder

یکبار کار با این کلاس رو یادبگیرید میتونید، تصویر بین متن، متن با انواع سایز و انواع فونت و قراردادن شکلک بین متن و استایل های مختلف مثل Underline و... رو استفاده کنید.

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

در 6 ساعت قبل، Ammar گفته است :

دستتون درد نکنه ولی این سورس خیلی پیچیده‌س :fekr:

میشه بگین دقیقا کدوم قسمتش مربوط به آندرلاین میشه؟

سلام سلامت باشید 

اینم توضیحات یک مدل از Richstring استفاده شده درسورس ، اول لیبل شماره یکو توضیح میدم ،اون یکی لیبل ها هم شبیه اینه باکمی تفاوت :

 

Sub Activity_Resume
'''''''''''''''''''''''''''''تنظیمات مربوط به تعریف لیبل 

	Dim Label1 As Label
	Label1.Initialize("label1")
	Label1.Color = Colors.White
	Label1.TextColor = Colors.Black
	Label1.TextSize = 20
	Label1.Gravity = Gravity.CENTER
	Activity.AddView(Label1, 10dip, 10dip, 300dip, 50dip)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''	
	
	
	
	Dim rs As RichString
	Dim rsb As RichStringBuilder
	
	
	rs.Initialize("This is not ") 'یک متن به ریچ استرینگ میدهد!' can use a String, RichString or RichStringBuilder
	
	'''''''''''''''''''''''''''''''''
	rsb.Initialize
	rsb.Append(rs)
	rsb.Append("a RichString") 'بااین گزینه میتونید به متن اولیه تان متن دیگری رو به دلخواه خودتان اضافه کنید 
	'''''''''''''''''''''''''''''''''
	
	' formatting using string indices
	rs.Initialize(rsb) ' use Initialize instead of asignation like a normal String
	rs.Color(Colors.Blue, 0, 4)  ''ازحرف شماره 1 تا حرف شماره 5 رنگ آبی بشه
	rs.RelativeSize(1.5, 0, 4)'ازحرف شماره 1 تا حرف شماره 5 اندازه فلان بشه
	rs.Typeface("serif", 0, 4)'ازحرف شماره 1 تا حرف شماره 5 فونتش فلان بشه
	''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
	
	rs.Underscore(5,7) 'ازحرف شماره 6 تا حرف شماره 8 زیرخط دار (آندرلاین) بشه
	
	''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
	
	rs.Strikethrough(8, 11)''ازحرف شماره 9 تا حرف شماره 12 خط روی متن کشیده بشه
	rs.Color(Colors.Red, 14, 18) ''ازحرف شماره 15 تا حرف شماره 19 رنگ قرمز بشه
	rs.Style(rs.STYLE_BOLD_ITALIC, 14, 24) ''ازحرف شماره 15 تا حرف شماره 25 فونتش بولد و...  بشه
	
	
	Label1.Text = rs  '''متن درآخرکار داخل لیبل قرار بگیره ونمایش داده بشه 
	
	
	

End Sub

------------------------------------

توی لیبل شماره 2 هم اول متن همراه با کاراکترهای داخل کروشه رو به ریچ استرینگ میدید وبجای مشخص کردن شماره حرف ، علامت تعیین میکنه که هروقت مثلا به علامت {U}  رسید دستور آندرلاین یعنی Underscore2 را اجرا کند 

rs.Underscore2("{U}")

---------

''''''''''تعریف لیبل
Dim Label2 As Label
	Label2.Initialize("label2")
	Label2.Color = Colors.White
	Label2.TextColor = Colors.Black
	Label2.TextSize = 20
	Label2.Gravity = Gravity.CENTER
	Activity.AddView(Label2, 10dip, 70dip, 300dip, 50dip)
'''''''''''''''''''''''''''''''''''''''''''''''	
	
	
	Dim rs As RichString
	Dim rsb As RichStringBuilder
	'Dim rsf As RichStringFormatter
	
'''''''''''''''''''''''''''''''''''''''''''''''''''
rs.Initialize("{R}{T}{Blue}This{Blue}{T}{R} {U}is{U} another {Red}{BI}Rich{Red}String{BI}")
	
	rs.Color2(Colors.Blue,"{Blue}")    '''کاراکتر میان دوتا  {Blue} برابر با رنگ آبی قرار بده
	rs.RelativeSize2(1.5, "{R}")      'کاراکتر میان دوتا  {R} سایزشو برابر با 1.5 قرار بده
	rs.Typeface2("serif", "{T}")     'کاراکتر میان دوتا  {T} فونتشو برابر با فلان قرار بده
	rs.Underscore2("{U}")           'کاراکتر میان دوتا  {U} زیرخطدار  قرار بده
	rs.Color2(Colors.Red, "{Red}")   'کاراکتر میان دوتا  {Red} برابر با رنگ ثرمز قرار بده
	rs.Style2(rs.STYLE_BOLD_ITALIC, "{BI}")   'کاراکتر میان دوتا  {BI} فونتشو بولد و... قرار بده
	Label2.Text = rs

----------------------------------------------

لیبل 3 هم عینا مثل لیبل 2 هم اما با یک روش دستوری دیگه ویه کارایی دیگه :

Sub Activity_Resume

	Dim Label3 As Label
	Label3.Initialize("label3")
	Label3.Color = Colors.White
	Label3.TextColor = Colors.Black
	Label3.TextSize = 20
	Label3.Gravity = Gravity.CENTER
	Activity.AddView(Label3, 10dip, 130dip, 300dip, 50dip)
	
	Dim rs As RichString
	Dim rsb As RichStringBuilder
	Dim rsf As RichStringFormatter
	

	
	
	' formatting using embedded tokens and the RichTextFormatter
	rs.Initialize("{R}{T}{Blue}This{Blue}{T}{R} {U}is{U} one more {Red}{BI}Rich{Red}String{BI}")
	rsf.Initialize("{sample}")
	
	rsf.AddToken("{R}", rsf.FORMAT_RELATIVESIZE, 1.5)
	rsf.AddToken("{T}", rsf.FORMAT_TYPEFACE, "serif")
	rsf.AddToken("{Blue}", rsf.FORMAT_COLOR, Colors.Blue)
	rsf.AddToken("{Red}", rsf.FORMAT_COLOR, Colors.Red)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''	
rsf.AddToken("{U}", rsf.FORMAT_UNDERSCORE, Null)' متون بین {U} رو زیرخطدار کن
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
	rsf.AddToken("{BI}", rsf.FORMAT_STYLE, rsf.STYLE_BOLD_ITALIC)
	rs = rsf.Format(rs)
	Label3.Text = rs
	

End Sub

 

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

بایگانی شده

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

مهمان
این موضوع برای عدم ارسال قفل گردیده است.
  • کاربران آنلاین در این صفحه   0 کاربر

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