رفتن به مطلب

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


Radiomedia

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

thumb.jpg

کتابخانه Maatisa ScaleFont [sp] Library

(ویرایش:  - طبق این آموزش - اگر میخواید متنی رو با هر سایزی درون ویو خودتون فیت کنید این راهش نیست، در اصل اگر برای فیت کردن کدی بنویسید، نیازی به این کلاس نیست، و شما میتونید با کتابخانه StringUtils پهنا و ارتفاع متنتون رو نسبت به ویو بگیرید و اندازش کنید، کار این کتابخانه sp فقط تعادل متن نسبت به سایز صفحه است.)

با سلام

قبلا مشابه این کتابخونه موجود بوده اما پارامتر های بیشتری میخواستن و این کتابخونه خیلی استفادش آسونتره، البته در همه سایز تست شده و کاملا Scale میشه دقیق.
- وقتی در IDE اندروید استودیو میخوایم سایز متنی رو تعیین کنیم از کلیدواژه sp بجای dp یا px استفاده می‌کنیم تا در دیوایس هایی با هر سایز و هر dpi ای بتوان سایز استاندارد و Scale شده را دریافت کرد و خروجی بی‌نقصی داشته باشیم.
اما در B4A چنین قابلیتی وجود ندارد بنابراین ما باید بصورت دستی نسبت اندازه دیوایس به رزولوشن را محاسبه کنیم.
اما این کار نیاز به آزمون و خطاهای بسیاری دارد، و برای اطمینان باید هربار روی تلفن و تبلت تست گرفته شود، و برای استفاده روی ویوها هربار این فرمول تکرار و یا فراخوانی شود.
کتابخانه ای که من برای شما آماده کردم این کار رو برای شما آسون میکنه، چون تست شده است، و کمترین زمان و خط کد رو از شما میگیره.
برای استفاده ازین کتابخانه شما ابتدا کتابخانه را از اینجا دانلود و سپس در پوشه Additional Libraries کپی کنید، بعد یک شی از کلاس MSP در Sub Globals تعریف می‌کنید.
سپس در Activity_Create یکبار آن را Initialize می‌کنید و درآن مقدار پهنای اکتیویتی خود را می‌دهید، و در ادامه برای هر ویویی که میخواهید سایز فونت آن را استاندارد بدهید، خط زیر را بجای سایز فونت وارد می‌کنید.

lbl.TextSize = msp1.sp(15)

این خط سایز ۱۵ استاندارد را برای هر اندازه ای تعیین خواهد کرد.
به همین راحتی

MaatisaSP_1_.pngMaatisaSP_2_.png

-  نمونه سورس کامل:

Sub Globals
  Dim msp1 As MSP
End Sub

Sub Activity_Create(FirstTime As Boolean)
  msp1.Initialize(Activity.Width)  'Initialize lib object with width of your Activity
  Dim lbl As Label
  lbl.Initialize("")
  lbl.Text = $"Maatisa ScaleFont [sp] Library${CRLF}Written by Mohsen Torabi"$
  lbl.Gravity = Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL
  lbl.SingleLine = False
  lbl.Textsize = msp1.sp(15)    'Set best font size to Label
  Activity.AddView(lbl , 0 , 0 , 100%x , 10%y)
  Log(msp1.About)
End Sub

فایل پیش نمایش APK:

دانلود

فایل اصلی کتابخانه + سپمل برنامه:

دانلود

امیدوارم به کارتون بیاد

ایشاله همیشه لبتون خندون باشه

 

 

 

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

بایگانی شده

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

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

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