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

تعریف Typeface خارج از اکتیویتی

XXXXXXX  12 سال پیش  12 سال پیش
0 0

سلام دوستان . من یه فونت دارم توی پوشه assets و چند تا تکست ویوو که میخوام تایپ فیس بهشون بدم . اما من نمیخوام که تایپ فیس رو توی اکتیویتی ها بسازم و settypeface بهشون بدم . میخواستم بدونم راهکاری هست که مثلا از طریق خصوصیت تایپ فیس که در منوی پراپرتیز تنظیم کرد یا توی styleها تعریفش کرد و بدیش به بقیه اکتیویتی ها ؟

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
utab  12 سال پیش
+2 0

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

 public class fontyekan extends TextView {

public fontyekan(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}


public fontyekan(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}


public fontyekan(Context context) {
super(context);
init();
}


public void init() {

Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "font/yekan.ttf");
setTypeface(tf, 1);

}
}

به آدرس دهی و فونتی که می خواهید قرار بدید دقت کنید و در فایل بالا اصلاح نمایید

خب حالا شما در کاستوم لایبرری fontyekan رو دارید می تونید به جای تکسک ویو از این استفاده کنید
اگر بخش سیزدهم آموزش های اقای آقاجانی رو مطالعه کنید درباره ساخت کنترل های سفارشی بیشتر توضیح داده ما هم اینجا یک کنترل سفارشی ساختیم که این کنترل سفارشی فونتش یکانه و اونو توی پروژمون استفاده می کنیم

موفق باشید

0 0
به جای تکست ویو ازش استفاده کنم ؟؟ یعنی چی؟؟ میشه واضح تر توضیح بدین . الان من فایل جاوا رو ساختم . بعدش چیکار کنم ؟ مثلا میخوام به دکمه تایپ فیس بدم دیگه نمیشه . فقط تکست ویو ؟ (12 سال پیش)
0 0
شما براي اينكه از textview پيش فرض اندرويد استفاده كنيد مياين يك كلاس مثل بالا ميسازيد كه از textview ارث بري ميكنه و تغييرات مورد نظرتون رو درش ايجاد ميكنيد مثل الان كه فونتش تغيير كرده ، حالا هرجا نياز داشتيد از اين textview كاستومایز شده استفاده ميكنيد ، در بخش ١٣ كامل توضيح داده شده (12 سال پیش)
پاسخ به سوال 
h_r_v  12 سال پیش
+2 0

دوستمون درست توضیح دادن من فقط کاملترش میکنم، کدی که من استفاده میکنم اینه :ابتدا یک کلاس به نام 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()) {


float size1 = Float.parseFloat(size);
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/araz.ttf");
setTypeface(tf);
setTextSize(size1);
}
}}

بعد به activity_main.xml و یا هر xml هایی که میخواهید فونتش رو عوض کنید برید و مثلا این عبارت رو :

         <TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />

با عبارت زیر عوض کنید: (در واقع به جای TextView مسیر کلاس رو بهش بدید)

         <com.yourpackagename.MyTextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />


0 0
داره از size اشکال میگیره. به جای size چی باید بنویسم؟ (12 سال پیش)
0 0
اون اشتباه شد! عبارت setTextSize(size1); رو کلا پاک کنید! (12 سال پیش)
0 0
نه . از این داره اشکال میگیره . Float.parseFloat(size); (12 سال پیش)
0 0
اهان الان درست شد . خیلی دمت گرم داداش . راستی برای دکمه ها و بقیه کنترل ها هم باید به جای Textview مثلا برای دکمه بذارم Button ? (12 سال پیش)
0 0
دوست عزیز بخش 13 آموزش های استاد رو نگاه کنید تمام سوالاتتون خیلی خیلی کاملتر از چیزی که ما اینجا می گیم پاسخ داده شده! (12 سال پیش)

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