تغییر فونت در اندروید و تغییر فونت تمام ویوها در اندروید
دو روش برای تغییر فونت متن ها در اندروید وجود دارد روش اول استفاد از کلاس 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>
اکنون می بینیم که با اجرا شدن برنامه تمامی فونت های مربوط به آن اکتیویتی به شکل فونت مورد نظر ما تغییر پیدا کرده است
2 دیدگاه
فاطمه · آگوست 10, 2018 در 3:48 ب.ظ
سلام
فوق العاده ممنونتونم. یعنی واقعا مرسیییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییییی
حامد قنبری · آگوست 24, 2018 در 12:56 ب.ظ
خواهش می کنم