آموزش تغییر فونت تمام قسمت های برنامه بوسیله کتابخانه Calligraphy
توسط کتابخونه Calligraphy میتونید تقریبا فونت تمام قسمت های برنامتون رو عوض کنید از TextView گرفته تا Dialog ها، در ادامه کمی در مورد نحوه کارش توضیح میدم :
1- اضافه کردن کتابخونه
توسط یکی از دو روش زیر کتابخونه رو به پروژتون اضافه کنید.
Gradle : اگر از Android Studio استفاده میکنید خط زیر رو به dependency هاتون در فایل build.gradle پروژتون اضافه کنید و بعد Sync کنید تا کتابخونه دانلود و اضافه بشه :
compile 'uk.co.chrisjenx:calligraphy:2.0.1'
فایل Jar: این لینک رو دانلود کنید ، فایل رو با برنامه های مشابه Winrar باز کنید، و فایل classes.jar رو در جای مناسب در پروژتون اضافه کنید.
2- اضافه کردن فونت
فایل فونت مورد نظرتون رو در پوشه assets قرار بدید.
3- کلاس Application
اگر کلاس Application یا همان G خودمون رو ندارید بسازید و خطوط زیر رو در متد onCreate قرار بدید، با توجه به اسم فونتتون اون رو در تکه کد زیر تغییر بدید.
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("BYekan.ttf")
.build()
4-کلاس Activity پایه
کلاسی مثل EnhancedActivity بسازید و متد attachBaseContext رو Override کنید و به مانند تکه کد زیر خط اول اون رو تغییر بدید:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
5- پایانی
حالا Activity هاتون رو از EnhancedActivity مشتق (extend) کنید، اگر مراحل رو درست انجام داده باشید نتیجه مطلوب رو خواهید دید.
چند نکته مهم : DELETED
import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Typeface;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class G extends Application {
public static Context context;
public static LayoutInflater inflater;
public static final Handler HANDLER = new Handler();
public static Activity currentActivity;
public static SharedPreferences preference;
public static String encodedHash = Uri.encode("#");
public static Typeface amerfont;
public static Typeface arabicfont;
public static Typeface arabicbfont;
public static Typeface koodakfont;
public static Typeface narmfont;
public static Typeface yekanfont;
public static Typeface byekanfont;
public static Typeface iranfont;
public static Typeface yekanmob;
public static int id;
public static int number;
public static EditText edtNumberMobile;
public static EditText edtNumberCard;
public static TextView txtCheckNet;
public static ImageView imgNewNews;
public static ImageView imgProfileMenubar;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
preference = PreferenceManager.getDefaultSharedPreferences(this);
amerfont = Typeface.createFromAsset(getAssets(), "amer.ttf");
arabicfont = Typeface.createFromAsset(getAssets(), "arabic.ttf");
arabicbfont = Typeface.createFromAsset(getAssets(), "arabicb.ttf");
koodakfont = Typeface.createFromAsset(getAssets(), "koodak.ttf");
narmfont = Typeface.createFromAsset(getAssets(), "narm.ttf");
yekanfont = Typeface.createFromAsset(getAssets(), "yekan.ttf");
byekanfont = Typeface.createFromAsset(getAssets(), "byekan.ttf");
iranfont = Typeface.createFromAsset(getAssets(), "iran.ttf");
yekanfont = Typeface.createFromAsset(getAssets(), "yekanfont.ttf");
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("iran.ttf")
.build()
);
}
//////////////////////////check internet connection
public static boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) G.context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
return false;
} else
return true;
}
میشه لطف کنین یه سورس کوچیک که از این کتابخونه توش استفاده شده باشه رو بزارین؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .