آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آموزش تغییر فونت تمام قسمت های برنامه بوسیله کتابخانه Calligraphy

Spirit  9 سال پیش  8 سال پیش
+24 0

توسط کتابخونه 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

0 0
دوست عزیز مطلب سوم ;( کم داره آخرش. و اینکه برای من ارروری می ده با این مضمون: 02-23 22 E/AndroidRuntime(11926): java.lang.NoClassDefFoundError: uk.co.chrisjenx.calligraphy.CalligraphyConfig$Builder (9 سال پیش)
0 0
برای منم همین ارور داد (9 سال پیش)
0 0
من فایل jar رو توی سایت پیدا نمیکنم ! (9 سال پیش)
0 0
پیدا گردم اما منم مثل دوستان با همین مشکل برخوردم (9 سال پیش)
0 0
سلام دوستان. من وقتی در قسمت " dependency " اون خط مربوطه رو اظافه می کنم خوب بعدش sync میشه .که بعد از sync با خطای زیر رو به رو می شم. باید چی کار کنم؟ Failed to resolve : uk.co.chrisjenx2.2.0 Error :(25,13) Show in file Show in Project Structure dialog. ممنون میشم کمک کنید. (8 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
وحید  9 سال پیش
0 0

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;
}
0 0
این مراحل رو تست کردم و مشکلی نبوده، سوالتون رو ویرایش کنید و کدهای کلاس G رو قرار بدید. (9 سال پیش)
0 0
برای منم همین ارور داد (9 سال پیش)
0 0
بفرما گذاشتم. ضمنا این دوستمون هم همین مشکل رو داره (9 سال پیش)
0 0
لینک و لینک بحث شده، ولی نفهمیدم مشکل از کجاست و چجوری حل میشه. (9 سال پیش)
0 0
باید multidex فعال بشه اینطوری که جواب دادن (9 سال پیش)
0 0
multudex چیست و چگونه؟ (9 سال پیش)
0 0
سلام.ممنون از اموزشتون .classes.jar کجاست ؟ پیداش نکردم. (9 سال پیش)
0 0
میشه لطف کنین یه سورس کوچیک از این کتابخونه توش استفاده شده باشه رو بزارین؟ (8 سال پیش)
پاسخ به سوال 
kmelodi  8 سال پیش
0 0

میشه لطف کنین یه سورس کوچیک  که از این کتابخونه توش استفاده شده باشه رو بزارین؟


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .