menu

تغییر فونت متن (Custom Font) در اندروید

نحوه تغییر فونت متن ها و استفاده از فونت دلخواه در اندروید را فرا بگیرید


استفاده از فونت های دلخواه و تغییر فونت پیش فرض اندروید برای متن های فارسی باعث زیباتر شدن رابط کاربری برنامه خواهد شد.

در اندروید، می توانیم فونت پیش فرض فیلدهای متنی، متن دکمه ها، ادیت تکست ها و ... را به آسانی تغییر دهیم. برای این کار کافیست فونت فارسی موردنظر (به عنوان نمونه یکان یا کودک) را دریافت نموده و درون پوشه "assets/fonts" قرار دهید.

پس از قرار دادن فونت موردنظر درون پوشه "assets" می توانیم برای تغییر فونت از کلاس "Typeface" در اندروید استفاده نماییم. قبل از این کار باید فیلد متنی، دکمه و ... موردنظر را به اشاره گر جاوا معرفی کنیم:

          
   // ساخت یک نمونه از کلاس موردنظرتعریف و معرفی به اشاره گر جاوا     
  TextView txttitle = (TextView)findViewById(R.id.txttitle);       
          

اکنون برای استفاده از فونت دلخواه موردنظر که قبلا درون پوشه "assets" قرار دادیم باید از متد "()createFromAsset" از کلاس "Typeface" استفاده نماییم. به کد زیر توجه نمایید:

          
     // استفاده از فونت یکان به عنوان نمونه    
  Typeface font = Typeface.createFromAsset(getAssets(), "fonts/yekan.ttf");
          

اکنون با فراخوانی متد "()setTypeface" می توانیم فونت عنصر موردنظر را تغییر دهیم. در مثال زیر فونت فیلد متنی معرفی شده در بالا را به عنوان نمونه تغییر می دهیم:

        
  txttitle.setTypeface(font);    
          

پروژه نمونه : استفاده از فونت های فارسی برای برنامه

برای یادگیری و آشنایی بیشتر با نحوه تغییر فونت عناصر گرافیکی در اندروید، یک پروژه نمونه را به صورت قدم به قدم ایجاد می کنیم و در آن از فونت های فارسی استفاده می کنیم. پروژه در محیط اندروید استودیو به شکل زیر خواهد بود:

customfont

مراحل انجام کار

  • 1 - ابتدا مطابق با آموزش ساخت اولین پروژه اندرویدی یک پروژه جدید بسازید و نام آن را "Custom Font" قرار دهید.
  • 2 - فونت فارسی موردنظر خود را درون پوشه "assets/fonts" قرار دهید.
  • 3 - کدهای مربوط به لایه طراحی شده در آموزش را جایگزین کدهای لایه پروژه خود کنید.
  • 4 - فایل MainActivity.java را باز کرده و کدهای جدید نوشته شده موجود در آموزش را در آن اضافه نمایید.
  • 5 - پروژه را اجرا نموده و برروی شبیه ساز آن را تست کنید.

1 - لایه گرافیکی activity_main.xml

          
   <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#e7e7e7"
    android:padding="16dp">

    <TextView
        android:text="متن موردنظر با فونت یکان"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:gravity="center"
        android:textColor="#000"
        android:textSize="20dp"
        android:textStyle="bold"
        android:id="@+id/txtyekan"
        android:background="#fff"
        android:layout_margin="10dp" />

    <TextView
        android:text="متن موردنظر با فونت کودک"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:gravity="center"
        android:textColor="#000"
        android:textSize="20dp"
        android:textStyle="bold"
        android:id="@+id/txtkoodak"
        android:layout_below="@+id/txtyekan"
        android:background="#fff"
        android:allowUndo="false"
        android:layout_margin="10dp" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:text="دکمه نمونه"
        android:id="@+id/btnclick"
        android:layout_below="@+id/txtkoodak"
        android:layout_margin="10dp"
        android:textColor="#000"
        android:textSize="20dp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:text="طراحی شده توسط آکادمی مجازی ذره بین"
        android:id="@+id/txtcopyright"
        android:layout_alignParentBottom="true"
        android:gravity="center"
        android:textColor="#000"
        android:textSize="18dp"
        android:textIsSelectable="false"
        android:textStyle="bold" />
  </RelativeLayout>
         

2 - MainActivity.java

      
  package com.izarebin.customfont;

  import android.graphics.Typeface;
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.widget.Button;
  import android.widget.TextView;

  public class MainActivity extends AppCompatActivity {
    TextView txtyekan,txtkoodak,txtcopyright;
    Button btnclick;

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

        // تعریف و معرفی عناصر به اشاره گر جاوا
        txtyekan = (TextView) findViewById(R.id.txtyekan);
        txtkoodak = (TextView) findViewById(R.id.txtkoodak);
        txtcopyright = (TextView) findViewById(R.id.txtcopyright);
        btnclick = (Button) findViewById(R.id.btnclick);
        
        // بارگذاری فونت های موردنظر از پوشه استز
        Typeface yekan_font = Typeface.createFromAsset(getAssets(), "fonts/yekan.ttf");
        Typeface koodak_font = Typeface.createFromAsset(getAssets(), "fonts/koodak.ttf");
        
        // تغییر فونت عناصر موردنظر
        txtyekan.setTypeface(yekan_font);
        txtkoodak.setTypeface(koodak_font);
        txtcopyright.setTypeface(yekan_font);
        btnclick.setTypeface(koodak_font);
    }
  }
           

3 - AndroidManifest.xml

این برنامه نیاز به دسترسی ندارد و نیاز به تغییر در منیفست برنامه نیست.

          
  <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.izarebin.customfont" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity android:name=".MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

  </manifest>        
          

4 - اجرای برنامه برروی شبیه ساز

شما می توانید به صورت آنلاین برنامه طراحی شده را از این لینک مشاهده نمایید.

شکل پروژه طراحی شده به صورت زیر خواهد بود:

customfont1
سورس پروژه برنامه استفاده از فونت دلخواه (Custom Font) برای محیط اندروید استودیو را می توانید از این لینک دریافت نمایید.