خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

فونت سفارشی اندروید استودیو Extending TextView

فونت سفارشی اندروید استودیو Extending TextView

فونت سفارشی اندروید استودیو Extending TextView

سفارشی سازی فونت دلخواه اندروید استودیو

فونت سفارشی Extending TextView  ، عرض سلام و ادب خدمت دوستان عزیز خانه اندروید در این پست می خواهیم سفارشی سازی فونت دلخواه رو روی TextView اعمال کنیم. که مبحث ارث بری کردن اینجا مطرح میشه که توی آموزش بخش جاوا مبحث ارث بری کردن رو خدمتون آموزش دادیم. توی این پست می خواهیم سفارشی سازی فونت رو خدمتون به کمک همین مبحث آموزش بدیم . و دو کلاس رو طراحی کنیم تا هم دیگر را Extend کنند و بتونیم فونت دلخواه خودمون رو به اختصار بدیم. 

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

حتما بخوانید : آموزش ایجاد کردن Create Assets اندروید

خوب فونت خودتون رو به پوشه Assets اضافه کنید چون قراره توی کلاس نام فونت رو پاس بدیم به متد تغییر فونت.

میرم سراغ آموزش لطفا کلاس های زیر را ایجاد کنید.نام کلاس :adapterfonts

import android.content.Context;
import android.graphics.Typeface;
import java.util.HashMap;

/**
 * Created by homeandroid.ir on 7/17/2017.
 */

public class adapterfonts {
    public static HashMap<String,Typeface> fontcash =new HashMap<>();

    public static Typeface fontface(String fontname,Context context){

        Typeface typeface=fontcash.get(fontname);
        if (typeface==null) {
            try {
                typeface = Typeface.createFromAsset(context.getAssets(), fontname);
            } catch (Exception e) {
                return null;
            }
            fontcash.put(fontname,typeface);
        }
        return  typeface;

    }
}

حالا کلاس مربوط به ارث کردن از Textview را هم پیاده سازی می کنیم. نام کلاس Costomfonts

import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;

public class Costomfonts extends android.support.v7.widget.AppCompatTextView {

public Costomfonts(Context context) {
        super(context);
        applyCustomFont(context);
        }

public Costomfonts(Context context, AttributeSet attrs) {
        super(context, attrs);

        applyCustomFont(context);
        }

public Costomfonts(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

        applyCustomFont(context);
        }

private void applyCustomFont(Context context){
        Typeface customFont=adapterfonts.fontface("IRANSansWeb_FaNum.eot",context);
        setTypeface(customFont);

        }
}

نکته : فونت زیر را به پوشه Assets اضافه کرده ام و در بالا مقدار را به تابع ارسال کرده ام.

IRANSansWeb_FaNum.eot

لطفا دقت کنید هر اکتیویتی که قصد استفاده از کلاس فونت دلخواه را دارید لطفا سازنده را فراخوانی کنید.در اینجا چون بنده از فرگمنت ها استفاده کرده ام به سازنده خودم getactivity ارسال کرده ام. شما اگر می خواهید در اکتیویتی استفاده کنید مقدار this و یا نام اکتیویتی را بدهید.به عنوان مثال mainactivity.this

Costomfonts  costomfonts=new Costomfonts(getActivity());

حالا در هر اکتیویتی که قصد داریم TextView ما مقدار فونت دلخواه ما رو داشته باشه کافی در بخش xml جایی که Textview را به برنامه نویسی اضافه می کنیم بنویسیم.

<com.homeandroid.app.makanjo.customsfonts.Costomfonts
    android:id="@+id/Textview_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   android:maxLines="1"
    android:layout_toEndOf="@+id/imguser"
    android:textSize="16sp" />

نکته : نامی که در بالا مشاهده می کنید نام پکیج من هست و پکیج نام شما با مال بنده تفاوت داره پس لطفا packname خودتون رو بدید.

درباره نویسنده

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

    به دیدگاه های بی نام و نشان که ایمیل فیک و نام فیک وارد می کنند پاسخ داده نمی شود

بدون دیدگاه