هیچ دوره ای در سبد آموزش شما وجود ندارد
فونت سفارشی در اندروید
صفحه نخستدر اندروید می توانید برای رشته ها (strings) در اپلیکیشن ، فونت های مورد پسند خود را تعریف کنید. برای این کار تنها لازم است فونت ها را از اینترنت دانلود کنید و سپس آن را در فولدر assets/fonts قرار دهید.
پس از جابه جایی فونت به فولدر ذکر شده ، می توانید از طریق کلاس Typeface به کدهای جاوای مورد نظر نیز دسترسی پیدا کنید. به عنوان اولین قدم ، مرجع text view را پیدا کنید .
سینتکس آن به صورت زیر است :
TextView tx = (TextView)findViewById(R.id.textview1);
کار بعدی که شما باید انجام دهید این است که متد استاتیک ()createFromAsset از کلاس Typeface را فراخوانی کنید تا فونت سفارشی خود را از assets بدست آورید. سینتکس آن در زیر داده شده است:
Typeface custom_font = Typeface.createFromAsset(getAssets(), "fonts/font name.ttf");
آخرین کاری که باید انجام دهید تنظیم این فونت بر روی پراپرتی TextView Typeface می باشد. برای انجام این کار لازم است متد() setTypeface را فرا بخوانید. سینتکس آن در زیر ارائه شده است :
tx.setTypeface(custom_font);
به غیر از این متد ها، متد های دیگری نیز وجود دارند که در کلاس Typeface تعریف شده اند که می توانید از آن ها برای کنترل فونت ها بصورت کاربردی تر استفاده کنید.
شماره | متد و توضیحات |
1 | (create(String familyName, int style
با توجه به family name و اطلاعات استایل انتخابی، یک شی Typeface ایجاد کنید. |
2 | (create(Typeface family, int style
یک شیء Typeface ایجاد کنید که بهترین متن Typeface و Style را مشخص کند. |
3 | (createFromFile(String path
یک Typeface جدید را از فونت مشخص شده ایجاد کنید. |
4 | (defaultFromStyle(int style
یکی از اشیاء Typeface پیش فرض را بر اساس استایل مشخص شده باز می گرداند. |
5 | ()getStyle
ویژگیهای سبک درونی Typeface را نشان میدهد. |
مثال
در اینجا مثالی را می بینید که استفاده ی Typeface را در به کار گرفتن CustomFont (فونت سفارشی) توضیح می دهد.
در اینجا یک اپلیکیشن پایه ایجاد می شود که فونتی را نمایش می دهد که شما در فایل فونت ها مشخص کرده اید. برای آزمایش با این مثال می توانید آن را روی یک دستگاه واقعی یا یک امولاتور اجرا کنید.
مرحله | توضیحات |
1 | برای ایجاد اپلیکیشن از Android studio IDE تحت پکیج com.example.customfonts استفاده کنید . |
2 | یک فونت از اینترنت دانلود کنید و آن را تحت فولدر assets/fonts قرار دهید. |
3 | فایل src/MainActivity.java را تغییر دهید تا کد لازم را اضافه کنید. |
4 | res/layout/activity_main را تغییر دهید تا مولفه های مربوط به XML را اضافه کنید. |
5 | برنامه را اجرا کنید و یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را بررسی کنید. |
قبل از ورود به قسمت کد ، فونت دانلود شده را به assets/fonts اضافه کنید :
محتوای تغییر یافته ی MainActivity.java :
package com.example.sairamkrishna.myapplication; import android.graphics.Typeface; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends ActionBarActivity { TextView tv1,tv2; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv1=(TextView)findViewById(R.id.textView3); tv2=(TextView)findViewById(R.id.textView4); Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf"); tv1.setTypeface(face); Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf"); tv2.setTypeface(face1); } }
محتوای تغییر یافته ی activity_main.xml :
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Typeface" android:id="@+id/textView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textSize="30dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials Point" android:id="@+id/textView2" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:textSize="35dp" android:textColor="#ff16ff01" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials Point" android:id="@+id/textView3" android:layout_centerVertical="true" android:textSize="45dp" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials Point" android:id="@+id/textView4" android:layout_below="@+id/textView3" android:layout_alignLeft="@+id/textView3" android:layout_alignStart="@+id/textView3" android:layout_marginTop="73dp" android:textSize="45dp" /> </RelativeLayout>
محتوای res/values/string.xml :
<resources> <string name="app_name">My Application</string> </resources>
محتوای فایل AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
اجازه دهید برنامه ی فونت خود را که کمی تغییر داده ایم، اجرا کنیم. فرض می کنیم AVD خود را در هنگام انجام تنظیمات محیط ایجاد کرده اید. برای اجرای برنامه از Eclipse یکی ازفایل های فعالیت برنامه را باز کرده و روی آیکن Run از تولبار کلیک کنید. Android studio برنامه را روی AVD شما نصب می کند و آن را آغاز می کند و اگر همه چیز در مورد تنظیمات و برنامه درست باشد، پنجره ی امولاتور زیر را نمایش خواهد داد :
همانطور که مشاهده می کنید، متنی که روی AVD ظاهر می شود هیچگونه فونت پیش فرض اندروید ندارد و در واقع دارای فونتی می باشد که شما در فایل فونت ها مشخص کرده اید.
توجه ! در هنگام استفاده از این فونت باید اندازه و کاراکتری را که توسط فونت پشتیبانی می شود، حفظ کنید.