
در این مقاله تغییر فونت سورس اندروید به سادگی به کمک استفاده از استایل شرح داده شده است. در این مقاله با یک ترفند بسیار ساده که از api 26 به بعد توسط گوگل ریلیز شد و کاربرد آن در تغییر فونت سورس اندروید آشنا خواهید شد.
گاهی اوقات دوست دارید که سورس اپ شما از یک فونت پشتیبانی کند ولی روشی مانند TypeFace علاوه بر اتلاف وقت در بهینه سازی کد نیز تاثیر خوبی ندارد .
قبل از اینکه با Font Family آشنا شوم با ایجاد یک کاستوم کلاس و استفاده از خود TypeFace ترفندی را اجرا میکردم و خوشحال بودم که می توانم این کار را انجام بدهم 🙂 . بعد از آن با کتابخانه ی خیلی خوب Calligraphy آشنا شدم که با اضافه کردن یک دپندنسی و بعد از آن یک خط کد برای مقدار دهی در کلاس اپلیکیشن سورس اندروید فونت ها را تغییر میدادیم که البته در این مقاله می توانید در این باره بخوانید
بعد از آن یک متد را باید در هر کلاس فراخوانی میکردیم که ما با یک ترفند این متد را یک بار صدا میزدیم .
آموزش تغییر فونت سورس اندروید با Styles
خب قصد نداریم بگوییم قبلا چه می کردیم ، باید بگوییم الان چه کنیم. وقتی که sdk=26 ارائه شد و در فایل بیلد گریدل ما از compileSdkVersion 26 استفاده کردیم (در حال حاظر که دارم این مقاله را می نویسم نسخه ۲۸ اش موجود هست)
توانسیتم از قابلیت Font Family به کمک فایل styles.xml
بهره ببریم . به این صورت که شما فونت خود با فرمت ttf داشته باشید.
بعد روی فولدر res کلیک راست کنید و New > Android resource directory
حتما حتما نام دایرکتوری را font بذارید و نیز Resource typ را از جنس font قرار بدید . دقیقا طبق تصویر زیر :
خب بعد از این فایل styles.xml را باز کنید و در Theme برنامه اتون که در منیفست به عنوان تم اصلی سورس اندروید خود معرفی کردید این خط را قرار بدید : ( من از فونت سنس استفاده می کنم )
<item name="android:fontFamily">@font/iran_sans_dn</item>
نکته : شما می توانید چنتا فونت در پوشه ی font خود قرار بدهید . و در تم های مختلف که در فایل استایل دارید و بعد در منیفست برای هر اکتیویتی تعرفی میکنید فونت های مختلف تعریف کنید .
اگر که برای کل سورس اندروید تون یک فونت در نظر بگیرید فقط کافی است خط بالا که باید جای iran_sans_dn نام دقیق فونت خود را قرار دهید را تم اصلی اپلیشکیشن خود قرار دهید :
باید در منیفست در تگ application با معرفی آن در اتریبیوت android:theme=”@style/AppTheme کل فونت اپلکیشن را تحت تاثیر قرار دهید .
&lt;application android:name=".handler.AppController" android:allowBackup="true" android:fullBackupContent="@xml/backup_descriptor" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" "android:theme="@style/AppTheme" android:usesCleartextTraffic="true" tools:ignore="GoogleAppIndexingWarning" tools:targetApi="n"&gt;
اگر دوست دارید برای هر اکتیویتی از سورس اندروید خود یا هر بخشی فونت متفاوتی داشته باشید باید از xml و یا استایل های دیگری که برای هر اکتیویتی در منیفست و فایل استایل ها در نظر دارید شروع به اضافه کردن @font/iran_sans_dn کنید و سپس در منیفست تم را به اکتیویتی اضافه کنید.
هم چنین در بخش لی اوت ها در xml با اضافه کردن android:fontFamily=”@font/lobster” به TextView می توانید اقدام به ست کردن فونت برای هر ویو به طور مجزا کنید.
کار تمام است.
سنا عبادی CO-Founder نویسنده مقاله
توسعه دهنده موبایل به ویژه سیستم عامل اندروید ، هم بنیانگذار اندروید ریور و در تلاش برای تحقق یک رویا..
نگارش کد بلند یا نگارش بخش عمده یک سورس کد :