بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

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

مدیریت گفتگو
h_r_v 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام! یکی از دوستان خواست منم تا اونجایی که علم دارم آموزشش رو میزارم!

میریم سر اصل مطلب :
1. یک کلاس به نام MyTextView بسازید که محتویاتش اینه :

 	public class MyTextView extends TextView{

public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}

public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}

public MyTextView(Context context) {
super(context);
initialize();
}

private void initialize() {
if (!isInEditMode()) {
// اینجا میتونید تغییر فونت بدید!

}
}}

بعد به layout برید! TextView ها رو از این شکل :

 <TextView
android:id="@+id/about1txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|top"
android:textSize="30sp" />

به این شکل در بیارید( یعنی واژه TextView رو با آدرس MyTextView یی که ساختید عوض کنید) :

 <com.sample.package.MyTextView
android:id="@+id/about1txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|top"
android:textSize="30sp" />

بعد هر کاری در MyTextView در اون قسمتی که مشخص شده انجام بدید، روی کل TextView هایی که به MyTextView به شکل بالا نسبت داده شدن اعمال میشه! حالا میتونید فونت تعریف کنید، اندازه رو عوض کنید، با preferences کار انجام بدید و ....

نظرات

underomeda 12 سال پیش
الان بخوایم تغییر سایز بدیم سا تغییر فونت چطوری باید انجام بدیم؟با preferencees چطوری این مقداراهارو ذخیره کنیم و روی textview ها اعمال کنیم؟
Bahamin Dadras 12 سال پیش
اقا نیما!اونجا که نوشتی میتونید تغییر فونت بدید یعنی باید typrface تعریف کنیم؟!

پاسخ‌ها 2

h_r_v 12 سال پیش

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

 	        String size = G.preferences.getString("FONT_SIZE", "20");
String font = G.preferences.getString("FONT_TYPE", "4");
float size1 = Float.parseFloat(size);
int font1 = Integer.parseInt(font);
switch(font1)
{
case 1:
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/bnazanin.ttf");
setTypeface(tf);
break;
case 2:
Typeface tf1 = Typeface.createFromAsset(getContext().getAssets(), "fonts/araz.ttf");
setTypeface(tf1);
break;
case 3:
Typeface tf2 = Typeface.createFromAsset(getContext().getAssets(), "fonts/koodak.otf");
setTypeface(tf2);
break;
case 4:
break;

اگر هنوز مشکل دارید حتما قسمت Preferences رو ندیدید!

نظرات

underomeda 12 سال پیش
دیدم ولی چیزی متوجه نشدم !!!!!!!
underomeda 12 سال پیش
شما layout مربوط به prefrence رو هم میسازید؟
underomeda 12 سال پیش
این کدرو در چه قسمتی مینویسید؟بعد نحوه انتخاب فونت چطوری؟اینم با prefrence انجام دادی؟
Spirit 12 سال پیش

برادر نیما D: اینجوری خوشگلتر نمیشه به نظرت (قسمت تغییر فونت) :

int fontId = Integer.parseInt(G.preferences.getString("FONT_TYPE", "1"));
String fontName = "";
switch(fontId) {
case 1: default:
fontName = "bnazanin.ttf";
break;
case 2:
fontName = "araz.ttf";
break;
case 3:
fontName = "koodak.otf";
break;
}
setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/" + fontName));

نظرات

h_r_v 12 سال پیش
من فقط تا حدی که کارم راه بیفته کد مینویسم :دی بقیه اش سوسول بازیه :))
Borhani 12 سال پیش
آقای اسپریت تشکر نحوه نگاشت بهتر است این طوری باشد

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