رفتن به مطلب

کتابخانه AutoSizeScroll ، تنظیم خودکار اسکرول ویو مطابق با لیبل(تمام گوشیها)


پژمان نیکروان

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

سلام دوستان.


 


نمیدونم از کجا شروع کنم... :S


میدونم خیلیا این مشکل رو دارن ، شاید دیده باشید وقتی یه کتاب میسازید به فرض مثلا یه متنی رو توی لیبل قرار میدید و اون لیبل رو تو اسکرول میذارید ، باید هی مقدار Height اسکرول ویو رو کمو زیاد کنید تا به اون نتیجه برسید.


 


بعد درضمن ، ممکنه بتونید همونجا عرض اسکرول ویو رو طوری قرار بدید که همه ی متن توش جا بشه ، اما اگه وقتی سایز متن لیبل رو میبرید بالا چی؟؟؟


وقتی تو گوشی هایی با سایز کوچیک تر برنامه اجرا بشه چی؟؟؟


 


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


یه ماژولی هم استاد خلیلی در این مورد گذاشته بودن که میومد اونقدر سایز متن لیبل رو کوچیک میکرد تا اینکه توی اسکرول ویو تمام متن جا بشه.


 


اما اینبار سایز اسکرول ویو اونقدر بزرگ میشه که تمام متن لیبل توش جای بگیره. :dance:


 


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


 


 


خب میریم سراغ کتابخانه و آموزش که خیلی خیلی سادست و فقط با یک نیم خط کد تنظیم میشه.


 


ما اومدیم تو این سورس که پیوست شده:


 


یه لایوت ایجاد کردیم و توش اسکرول ویو قرار دادیم.


و یک لیبل هم تعریف کردیم که متن طولانی مون رو اونجا قرار بدیم و ادش کنیم به اسکرول ویو ، که به این صورت تعریف شدن:



Sub Globals
Dim label1 As Label
Private ScrollView1 As ScrollView
End Sub

خب ، حالا اومدیم تو رویداد activity_Create متن رو دادیم به لیبل و بعد ادش کردیم توی اسکرول و بعد با کتابخانه AutoSizeScroll تنظیمش کردیم.


که من کدهای اکتیویتی کریت رو قرار میدم و خط به خط توضیح میدم:



Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("main")
label1.Initialize("label1")

label1.Text=File.ReadString(File.DirAssets,"matn.txt")
label1.TextColor=Colors.Black
label1.TextSize=16
label1.Gravity=Gravity.CENTER

ScrollView1.Panel.AddView(label1,0,0,100%x,100%y)

Dim s As AutoSizeScroll
s.set(label1,ScrollView1)
End Sub

1.لایوتی که ساختیم لود کردیم تو اکتیویتی


2.لیبل رو initizile کردیم ، چون دستی ادش کردیم.


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


4. یه سری فونت و رنگ دادم به لیبل که هیچی.......


.........


7.لیبل رو اد کردیم به اسکرول ویو(که همتون میدونید)


8.کتابخانه autoSizeScroll رو تعریف کردیم و اسم لیبل و اسکرول ویو خودمو دادم بهش تا واسم تنظیمش کنه.


تمام!


 


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


 


حالا هرچقد میخواین متن لیبل رو سایزشو زیاد کنید...... ، و یا متنش رو زیاد کنید.


هیچ نیازی به بالا بردن عرض اسکرول نیست و در تمام گوشی ها تنظیم میشه.


 


خسته شدم اینقد نوشتم :crazy:


:::دانلود سورس و کتابخانه:::


 


توجه:


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


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




Dim s As AutoSizeScroll
s.set(label1,ScrollView1)
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

خدا خیریت بده کار ملتو راه انداختی پژمان جان :gol:

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

عالی بود پژمان جان 

اگر میشد فاصله خطوط رو هم اضافه میکردی خوب میشد 

چون خود b4a برای متن فاصله خطوطش کمه و حتما باید از تابع فاصله خطوط استفاده کنی 

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

عالی بود پژمان جان 

اگر میشد فاصله خطوط رو هم اضافه میکردی خوب میشد 

چون خود b4a برای متن فاصله خطوطش کمه و حتما باید از تابع فاصله خطوط استفاده کنی 

باشه.

تو نسخه بعدی کتابخونه سعی میکنم هم اینو رعایت بکنم ، هم اینکه دوستانی که کتابایی میسازن که توش عکس و متن قاطیه ردیف بشه.

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

خیلی عالی بود

یه سوال؟

چطوری سه تا لیبل توی یک اسکرول ویو داشته باشیم که با همین کتابخونه متنش درست بشه

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

خیلی عالی بود

یه سوال؟

چطوری سه تا لیبل توی یک اسکرول ویو داشته باشیم که با همین کتابخونه متنش درست بشه

تو ورژن بعدی کاری میکنم که بتونید لیبل هارو بهش تا هرچند تا بدید و بعد آخر سر تنظیم کنید.

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

تو ورژن بعدی کاری میکنم که بتونید لیبل هارو بهش تا هرچند تا بدید و بعد آخر سر تنظیم کنید.

 

الان راهی نیست؟

حتی بدون این کتابخونه؟؟؟؟

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

الان راهی نیست؟

حتی بدون این کتابخونه؟؟؟؟

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

 

شما فعلا بیاین اینکارو بکنید.

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

اینجوری:


	'کد اد شدن به اسکرول
		Dim lbtest As Label
			lbtest.Initialize("lbtest")
	lbtest.Text=label1.Text&label2.text&label3.text
	
		Dim s As AutoSizeScroll
	s.set(lbtest,ScrollView1)

بعد از اد شدن به اسکرول و... اینارو بنویسید.

تست نکردم ، شاید جواب بده...

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

  • 3 هفته بعد...

سوال خوبی پرسیدند

چون من هم همیشه چند تا لیبل رو توی یک اسکرول قرار مدم که راه داره

Dim stu As StringUtils

Activity.LoadLayout("L_Scroll_txt")

ScrollView_text.Panel.LoadLayout("L_txt")

     


     

ltxt1.text= Main.cur1.GetString("matn")

ltxt1.Top=0


ltxt1.height = (stu.MeasureMultilineTextHeight(ltxt1,ltxt1.text))

     

     

     

ScrollView_text.Panel.Height=ltxt1.Height + ltxt1.Top
لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 4 ماه بعد...
دوست عزیز به چه خطایی بر می خورید؟ لطفا کد هاتون رو قرار بدید و یک عکس از‌ خطا بزارید! با دیتابیس کتابخونه مشکلی نداره!
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

  • 2 ماه بعد...

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

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

  • 4 هفته بعد...

آقا پژمان نسخه ی جدید کی میاد؟من منتظرم شدیـــــــــــد

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

خواهشا جوابمو بدید.مرسی :heart:  :heart:  :heart:

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

  • 3 هفته بعد...

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

چرا چیزی نشون داده نمیشه؟

سورس رو فرستادم.ممنووووووون

سلام

 

هیچ اسکرول ویو ای به دیزاینر اد نشده بود. کجا نشونش میداد؟ لیبل هم اینیشیالایز نکرده بودید.

http://s7.picofile.com/file/8249151584/t3.zip.html

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

سلام

 

هیچ اسکرول ویو ای به دیزاینر اد نشده بود. کجا نشونش میداد؟ لیبل هم اینیشیالایز نکرده بودید.

http://s7.picofile.com/file/8249151584/t3.zip.html

 

یک دنیا ممنون

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

  • 4 هفته بعد...

سلام.

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

Sub Globals
	Dim cur As Cursor
	Private ScrollView1 As ScrollView
	
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("act")

	Dim label1 As Label
	label1.Initialize("")
	label1.Text=cur.GetString("matn")
	label1.TextSize=21
	label1.Gravity=Gravity.RIGHT
	ScrollView1.Panel.AddView(label1,3%x,2%y,94%x,100%y)
	Dim s As AutoSizeScroll
	s.set(label1,ScrollView1)

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

بایگانی شده

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

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

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