تغییر فونت یا سایز تنها با یک دستور
سلام دوستان میشه بگید به جای اینکه برای عوض کردن سایز متن همه ی تکست ویوو ها از دستور ID.setTextsize برای همه تکست ویووها استفاده کنیم یک دستور کلی بنویسیم که سایز هر چی تکست ویوو در برنامه داریم رو عوض کنه؟
یک راه حل اینه که یک کلاس از TextView مشتق (extend) کنید و در اونجا سایز رو از SharedPreference بخونید و البته OnSharedPreferenceChangeListener رو هم پیاده کنید (implement) تا موقع تغییر سایز تغییر اعمال بشه.
حالا تو برنامتون از این CustomTextViewـی که ساختید هر جا لازم هست استفاده کنید.
در فولدر Res شما چند فولدر با نام های Values,values-w600dp و ... داری که برای سایز های مختلف طراحی استفاده میشن. توی هرکدوم از این فولدر ها یک فایل Xml به نام dimens وجود داره، شما میتونید یک سایز تایپ توی اون تعریف کنید و بگید سایز تکست اون مقدار باشه، توی هرکدوم از Dimen ها سایز دلخواه رو وارد کنید فقط دقت کنید که key ها باید یکی باشد.
مثال:
توی values :
<dimen name="actionbar_size">72dp</dimen>
توی values-w600dp:
<dimen name="actionbar_size">92dp</dimen>
و بقیه اعداد رو میتونید به دلخواه پر کنید.
برای استفاده در برنامه 2 راه دارید، اول اینکه توی Layout مورد نظر در هنگام دیزاین یکضرب بگید از dimen بخونه
مانند:
android:layout_height="@dimen/actionbar_size"
روش دوم ست کردن سایز در کد جاوا:
currentActivity.getResources().getDimension(R.dimen.actionbar_size)
با استفاده از این کد شما توی گوشی کوچک یک سایز رو نمایش میدید، در گوشی بزرگ یک سایز، در تبلت کوچک یک سایز، در تبلت 10 اینچی یک سایز.البته باید 4 تا dimen مورد نظر رو پر کنید من برای تست 2 تاشو توضیح دادم.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .