تغییر فونت در اندروید و تغییر فونت تمام ویوها در اندروید

منتشرشده توسط حامد قنبری در تاریخ

 

دو روش برای تغییر فونت متن ها در اندروید وجود دارد روش اول استفاد از کلاس  Typeface  می باشد.

Typeface font = Typeface.createFromAsset(getAssets(), “fonts/B Mitra.ttf”);

در این روش ضرورتا باید در فایل Assets  فونت مورد نظر خود را با فرمت ttf  قرار دهیم سپس با استفاده از کلاس مذکور که سینتکس کلی  آن در فوق آمده است آن را فراخوانی کرده و با متن مورد نظر خود set کنیم به این صورت:

final EditText user = (EditText) findViewById(R.id.phonenumber);
user.setTypeface(font);

 

در روش دوم : با استفاده از کلاس calligraphy  فونت مورد نظر خودمان که به مانند روش قبل آن را در فایل assets  ذخیره کرده ایم در هریک از کلاس اکتیویتی ها فراخوانی کرده و کل متون مربوط به آن اکتیویتی را به فونت مورد نظر خود تغییر می دهیم. برای اینکار

1- فونت مورد نظر خود را با فرمت ttf در فایل asset  قرار دهیم

2- در قسمت وابستگی ها یا dependencies (که در builde gradle یا ماژول های اپلیکیشن قرار دارد) کد  مشخص شده به رنگ قرمز کپی کرده و از قسمت بالای پنجره ادیتور  آن را sync می کنیم

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:design:23.0.1'
    compile 'uk.co.chrisjenx:calligraphy:2.1.0'
 
   }

در مرحله بعد کلاس جدیدی را با نام فونت ایجاد کنید و کدهای زیر را در آن قرار دهید :

import android.app.Application;

import uk.co.chrisjenx.calligraphy.CalligraphyConfig;

/**
 * Created by hamed on 07/14/2017.
 */
public class font extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                        .setDefaultFontPath("mitra.ttf")
                        .setFontAttrId(R.attr.fontPath)
                        .build()
        );
    }
}

 

 

سپس متد فراخوانی این کلاس را در کلاس های مربوط به اکتیویتی قرار می دهیم . به شکل زیر :

public class MainActivity extends AppCompatActivity {

    private ImageSwitcher sw;
    private Menu menu;
    public static int INTERVALSERVICE;
    private ProgressDialog progressDialog;
    private Button test;

    @Override
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
    }
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

          }

          }

در نهایت در قسمت مانیفیست (manifest) درتگ مربوط application  کدهای XML زیر را قرار می دهیم به شکل زیر:

<application
    android:name=".font"
    android:allowBackup="true"
    android:icon="@drawable/myicon"
    android:label=""
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
<activity
    android:name=".MainActivity"
    android:theme="@style/AppTheme">
</activity>
</application>
</manifest>

اکنون می بینیم که با اجرا شدن برنامه تمامی فونت های مربوط به آن اکتیویتی به شکل فونت مورد نظر ما تغییر پیدا کرده است


3 دیدگاه

فاطمه · آگوست 10, 2018 در 3:48 ب.ظ

سلام
فوق العاده ممنونتونم. یعنی واقعا مرسیییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییی

    حامد قنبری · آگوست 24, 2018 در 12:56 ب.ظ

    خواهش می کنم

شایان · آوریل 1, 2020 در 3:52 ب.ظ

خیلی ممنون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --