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

فاصله بین خطوط متن لیبل


porya

سوال

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

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

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

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

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

 

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

   Dim Obj1 As Reflector
   Obj1.Target = lblText
   Obj1.RunMethod3("setLineSpacing", 1 , "java.lang.float", 1.8, "java.lang.float")

برای تنظیم ارتفاع لیبل و اسکرول ویو هم با کتابخانه stringutils و متد متراژ + یک مقدار .. مثل زیر

	lblText.Height=st.MeasureMultilineTextHeight(lblText,lblText.Text)
	scrText.Panel.Height=st.MeasureMultilineTextHeight(lblText,lblText.Text) + 100dip

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

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

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

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

Sub Globals
	Private Label1 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)

	Activity.LoadLayout("shayan")
	Label1.Text = "shayan" &CRLF& "king"
End Sub

دیگه فکر نکنم جزء این کدی باشه   :fekr:

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

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

فایل لایبری پیوست شد.

اینشیالایز میکنید و طبق سمپل خود کتابخانه اجزا رو بهش میدید، کار باهاش ساده است.

دانلود لایبری : http://s6.picofile.com/file/8212477118/TextSetting.rar.html

موفق باشید

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

Sub Globals
	Private Label1 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)

	Activity.LoadLayout("shayan")
	Label1.Text = "shayan" &CRLF& "king"
End Sub

دیگه فکر نکنم جزء این کدی باشه   :fekr:

 

دوست عزیز من متنم رو از دیتابیس میگرم از این روشی که شما گفتید فکر نکنم بشه استفاده کرد ولی با این حال ممنون...

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

 

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

فایل لایبری پیوست شد.

اینشیالایز میکنید و طبق سمپل خود کتابخانه اجزا رو بهش میدید، کار باهاش ساده است.

دانلود لایبری : http://s6.picofile.com/file/8212477118/TextSetting.rar.html

موفق باشید

اقای غفاری من از این کتابخونه قبلا استفاده کردم ولی تو کد زیر مربوط به این کتابخونه اون عدد 2 که مربوط به فاصله بین خطوطه کمتر از 2 کار نمیکنه مثلا 1.5 و نمیدونم چرا و خود اون 2 هم خیلی فاصله بین خطوط میندازه و زیاد جالب نمیشه...

ts.LongText(label1,label1.Text,label1.TextSize,ScrollView1,2) 

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

Dim Obj1 As Reflector
Obj1.Target = label1
Obj1.RunMethod3("setLineSpacing", 1, "java.lang.float", 1.3, "java.lang.float")

کد بالا کار میکنه و بین خطوط فاصله رو میندازه ولی نمیدونم چطور اون obj رو مساوی ScrollView1.Panel.Height بکنم تا متنم رو ناقص نشون نده و درست اسکرول شه در کل نمیدونم چطور با کدهای زیر یکیش کنم...

    ScrollView1.Panel.AddView(label1,0,stop,100%x,100%y)
    Dim int1 As Int
int1 = 0

     Dim su As StringUtils
    label1.Height = su.MeasureMultilineTextHeight(label1,label1.Text)
    int1 = int1 + label1.Height + 3%y
     ScrollView1.Panel.Height = int1

و از تابع زیر هم استفاده کردم ولی موقع افزایش سایز متن از تنظیمات برنامه  باز موقع اسکرول متن ناقص نشون میده...

Sub art(txt As String,leb As Label,font As Typeface,size As Int) As Float
Dim before,after As Float
Dim Obj1 As Reflector
leb.text=txt
leb.TextSize=size
leb.Gravity=Gravity.CENTER
leb.Left=leb.Left
leb.Typeface=font
ht = StrUtil.MeasureMultilineTextHeight(leb , txt)
Obj1.Target = leb
before = Obj1.RunMethod("getLineHeight") 'Get the height of line BEFORE you change it
Obj1.Target = leb
Obj1.RunMethod3("setLineSpacing", .10, "java.lang.float", 1.5, "java.lang.float") 'Change the space between lines
Obj1.Target = leb
after = Obj1.RunMethod("getLineHeight") 'Get the height of line AFTER you change it
ht = ((after * ht)/before)
leb.Height = ht
Return ht

End Sub

تا اینجا هم کتابخونه textsetting کار بنده رو راه انداخته ولی همینطور که بالا گفتم خیلی فاصله بین خطوط میده حالا عجیب دنبال یه راه کارم :fekr: ...

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

عزیز شما الان چقدر فاصله مد نظرتون هست ؟!

 

اگه متن تون رو از دیتابیس هم بگیرید ، باز میتونید

 

از CRLF که یه خط جدید میندازه ، استفاده کنید ./

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

عزیز شما الان چقدر فاصله مد نظرتون هست ؟!

 

اگه متن تون رو از دیتابیس هم بگیرید ، باز میتونید

 

از CRLF که یه خط جدید میندازه ، استفاده کنید ./

 

میشه یه توضیحی در مورد همین CRLF  بدید میدونم فاصله میندازه ولی خب نحوه کارشو با لیبل و دیتابیس بلد نیستم اگه میشه یه راهنمایی کنید...

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

اولش بگید فرمت متن تون که تو دیتابیس ذخیره شده چجوریه ؟؟!!

 

خودش فاصله داره نداره ؟ 

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

فاصله داره ولی خب به اندازه یه خط خیلی زیاده اگه کسی بتونه در مورد کدهای که تو اون پست بالایی گذاشتم توضیحی بده خیلی بهتر و دقیقتر میشه بین خطوط فاصله انداخت تا CRLF...

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

یه چیزی براتون درست کردم : 

 

من داده ها رو از یدونه فایل تکست بعنوان مثال گرفتم !

 

این محتوای فایل تکست :

 

9191_2015-09-17_004951.png

 

متن رو یکجا از فایل میخونم و میذارمش داخل یک متغیر رشته ای ،

و خواستم بین متون دوتا فاصله بندازم :

 

اینم کد :

 

hx40_2015-09-17_005152.png

 

اینم خروجیش :

 

ipu_2015-09-17_005240.png

 

امیدوارم مفید بوده باشه.

 

موفق باشید ./

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

دوست عزیز این همه نمونه از بهترین سورس ها در انجمن هست شما میگید پیدا نکردم

 

تنظیم ارتفاع لیبل رو سرچ کنید موفق باشید

Sub LH(txt As String,leb As Label,font As Typeface,size As Int) As Float                                  'تابع تنظیم ارتفاع لیبل ها'
Dim before,after As Float
	Dim Obj1 As Reflector
		leb.text=txt
		leb.TextSize=size
		leb.Gravity=Gravity.RIGHT
		leb.Left=leb.Left
		leb.Typeface=font
	ht = StrUtil.MeasureMultilineTextHeight(leb , txt)
            Obj1.Target = leb  
            before = Obj1.RunMethod("getLineHeight")    'Get the height of line BEFORE you change it
            Obj1.Target = leb 
            Obj1.RunMethod3("setLineSpacing", 1, "java.lang.float", 1.5, "java.lang.float")  'Change the space between lines
            Obj1.Target = leb 
            after = Obj1.RunMethod("getLineHeight")    'Get the height of line AFTER  you change it
            ht = ((after * ht)/before)
		leb.Height = ht
Return  ht
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

دوست عزیز بنده هم بعد از کد تغییر سایز این تابع رو فراخونی میکنم ولی نمیدونم چرا تو بعضی از سایزها متن رو ناقص نشون میده...

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

بایگانی شده

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

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

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