فونت سفارشی اندروید استودیو 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 خودتون رو بدید.
قبل از ارسال دیدگاه
بدون دیدگاه