استفاده از فونت های موجود در فایل assets در برنامه نویسی اندروید

در اندروید به روش های مختلفی می توان از فونت ها استفاده کرد. یکی از راه های که استفاده میشود قراردادن فونت در فولدر assets می باشد. البته نیاز هست در اینجا بیان کنم که می توانید از فولدر font هم استفاده کنید. نحوه استفاده از فونت ها در فولدر font را در آموزشی دیگر بیان کرده ایم. برای استفاده از این روش, ابتدا می توانید فونت های دلخواه خود را از اینترنت پیدا کنید و آن را در فولدر assets قرار بدهید.

به این دلیل که در فولدر assets میتوان انواع دیگری از فایل ها را نیز قرار داد. پیشنهاد میکنیم در این پوشه یک پوشه ی دیگری با نام دلخواه ایجاد کنید و فایل های مربوطه را در آن قرار بدهید. در این آموزش ما نام این پوشه را fonts قرار داده ایم. بعد از این که فونت های خود را در مسیر گفته شده (assets/fonts) قرار دادید, حالا نیاز داریم به صورت جاوا یک Typeface ایجاد کنیم.

 

مراحل استفاده از فونت های موجود در فولدر assets

ابتدا TextView یا هر ویوی دیگری که قادر به نمایش متن هست را به روش زیر در کلاس خود, آن را درون یک شی قرار بدهید.

TextView tx = (TextView)findViewById(R.id.textview1);

در مرحله بعد با استفاده از متد استاتیک createFromAsset که در کلاس Typeface موجود می باشد, میتوانید یک Typeface ایجاد کنید. یکی از پارامتر های این متد مسیر فایل فونت درون پوشه assets می باشد. به کد های زیر دقت کنید :

Typeface custom_font = Typeface.createFromAsset(getAssets(), "fonts/myfontname.ttf");

بعد از اینکه یک Typeface به شکلی که گفتیم توانستیم ایجاد کنید, نیاز داریم تا آن را برای ویو مد نظر خودمون تنظیم کنیم. برای اعمال font باید از متد setTypeface استفاده کنیم. به این شکل :

tx.setTypeface(custom_font);

 

 

متد های یک شی Typeface(فونت)

علاوه بر متدی که در بالا ذکر کردیم, متد های دیگری نیز در کلاس Typeface وجود دارد. در پایین لیست این متد ها را همراه با توضیحات هر کدام آورده ایم, که میتوانید از آنها نیز استفاده کنید.

متد ها و توضیحات ردیف
create(String familyName, int style)

این متد یک شی Typeface با نام خانوادگی و اطلاعات گزینه های استایل ایجاد میکند.

1
create(Typeface family, int style)

این متد یک شی Typeface ایجاد میکند که به بهترین شکل با Typeface موجود و استایل مشخص شده مطابقت داشته باشد.

2
createFromFile(String path)

این متد یک Typeface جدید از فایل فونت مشخص شده ایجاد میکند.

3
defaultFromStyle(int style)

این متد یکی از اشیاء Typeface پیش فرض را بر اساس استایل مشخص شده برمی گرداند.

4
getStyle()

این متد ویژگی های استایل ذاتی Typeface را برمی گرداند.

5

مثال

در مثالی که برای این آموزش آماده کرده ایم, نحوه استفاده از فونت های سفارشی با استفاده از پوشه assets است. در این آموزش ما یک اپلیکیشن پایه ایجاد کرده ایم که از این روش برای اعمال فونت ها استفاده میکند. برای تست این اپلیکیشن می توانید از تلفن واقعی یا شبیه ساز استفاده کنید.

توضیحات مراحل
ابتدا در اندروید استودیو یک پروژه با پکیج نیم دلخواه ایجاد کنید. 1
فونت های مد نظرتان را تهیه کنید و آن را درون پوشه assets و زیر پوشه fonts قرار بدهید. 2
کد های موجود در فایل MainActivity.java را مطابق کد های که در پایین آورده ایم تغییر بدهید. 3
کد های موجود در فایل activity_main.xml را مطابق کدهای که در پایین آورده ایم تغییر بدهید. 4
یک تلفن یا شبیه ساز را انتخاب کنید و برنامه را برای تست بر روی آن اجرا کنید. 5

 

قبل از اینکه وارد بخش کدها شویم, محل دقیق پوشه assets در این بخش می باشد :

Typeface - استفاده از فونت های موجود در پوشه assets

برای ایجاد این پوشه می توانید به صورت دستی اقدام کنید یا در اندروید استودیو بر روی پوشه res کلیک راست کرده و از منوی new زیر منوی Floder را انتخاب کنید در لیست باز شده می توانید روی آیتم Assets Folder کلیک کنید و در صفحه باز شده دکمه finish را بزنید.

کدهای فایل MainActivity.java

package com.foray.articlelib;

import android.graphics.Typeface;
import android.os.Bundle;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    TextView tv1,tv2;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv1=(TextView)findViewById(R.id.textView3);
        tv2=(TextView)findViewById(R.id.textView4);

        Typeface face= Typeface.createFromAsset(getAssets(), "fonts/sans.ttf");
        tv1.setTypeface(face);

        Typeface face1= Typeface.createFromAsset(getAssets(), "fonts/yekan.ttf");
        tv2.setTypeface(face1);
    }
}

 

کد های فایل activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="32dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="فونت ها در پوشه assets"
        android:textSize="30dp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
        android:text="7Cloner.com"
        android:textColor="#000000"
        android:textSize="35dp" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="35dp"
        android:layout_below="@id/textView2"
        android:text="سِون کلونر"
        android:textSize="45dp" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="30dp"
        android:text="سِون کلونر"
        android:textSize="45dp" />

</RelativeLayout>

 

نحوه استفاده از فونت های موجود در پوشه assets

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

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

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

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

مقالات پیشنهادی

بک لینک چیست؟

بک لینک (Back Link) به لینک دادن یک سایت به سایت دیگر گفته میشود که یک فاکتور مهم و اساسی در سئو هر سایتی می باشد.


۹۹۲
۰
۲۲ آذر ۱۳۹۹

وردپرس

وردپرس یک سیستم مدیریت محتوای قوی می باشد که با استفاده از آن می توان وب سایت ها و وبلاگ های گوناگونی با هر شرایطی را طراحی کرد چرا که این سیستم و ...


۸۰۸
۰
۱۳ آذر ۱۳۹۹

نود جی اس

توسعه دهندگان نود جی اس, زبان جاوا اسکریپت را از یک زبان قابل اجرا در مرورگر خارج کرده و به زبانی تبدیل کردن که بتوان آن را بصورت یه اپلیکیشن مستفل اجرا کرد و ...


۹۱۲
۰
۱۲ آذر ۱۳۹۹

اندروید

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


۱۰۵۵
۰
۲۹ آبان ۱۳۹۹

Fatal error: Uncaught wfWAFStorageFileException: Unable to verify temporary file contents for atomic writing. in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:52 Stack trace: #0 /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/clonerco/...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/clonerco/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 52