بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
سنتكلم اليوم عن كيفية إضافة خط خارجي إلى تطبيق الأندرويد فكما نعلم أن الخط الافتراضي لا يناسب كل الأذواق وقد نرغب في وضع خط يتناسب مع التصميم الخاص بالتطبيق فلابد من وضع خط خارجي .
أولا : سنذهب إلى ملف المشروع على القرص الصلب ( الافتراضي C > مستخدمون > اسم الحساب الخاص > AndroidStudioProjects > مجلد المشروع ) ثم بعد الدخول له ندخل أيضا للمسار app\src\main و ننشئ مجلد جديد باسم assets ( إن لم يكن موجودا ) وأيضا ننشئ آخر باسم fonts داخله و نضع فيه ملف الخط الذي قد نزلناه ويكون عادة بلاحقة .ttf .
سنتكلم حاليا عن خط فلات المصمم بأيادي عربية .
استعراض للخط من الموقع ( جذور ):
- اللغة العربية :
- اللغة الإنجليزية :
- استعراض للخط من تطبيقي :
للإطلاع على الخط من الموقع بشكل عام وبإمكانكم تحميله مع بقية الملفات : موقع جذور
وللتحميل المباشر لملف الخط الذي سيلزمنا فقط وهو اصلا من الملف في جذور , قد رفعته على Dropbox : هنا
عليكم تغيير اسم ملف الخط عند تنزيله للاسم المراد استخدامه في الكود ,,,, فعند تنزيله من Dropbox أو الموقع قوموا بتغيير الاسم ل flat في حال نسختم واستعملتم الكود في المثال .
ثانيا : سنستعمل الخط في الكود :
Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/flat.ttf");
جلبنا الخط من موقعه في assets ووعرفناه ك typeface .
ولضبط خط أي نص أو زر أو ادخال نصي نستخدم الدالة التابعة لأي Button , TexView , EditText ……
textview.setTypeface(myTypeface);
وهنا مثالنا على textview وهو TextView معرف سابقا .
والآن استعراض لكامل الكود في اكتيفيتي اسميناها font ضمن التطبيق Cr :
ملف اللياوت :
<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="com.dev.ms.cr.font"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:text="الحمدلله رب العالمين" android:id="@+id/thank" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> </RelativeLayout>
ملف الجافا :
package com.dev.ms.cr; import android.graphics.Typeface; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class font extends AppCompatActivity { Typeface myTypeface; TextView thank; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_font); myTypeface = Typeface.createFromAsset(getAssets(), "fonts/flat.ttf"); thank = (TextView) findViewById(R.id.thank); thank.setTypeface(myTypeface); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_font, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
وبإمكانكم وضع أي خط كان أو حتى وضع عدة خطوط في البرنامج لكل استعمال .
بالإمكان وضع الخط لأي عنصر من زر أو نص من ملف اللياوت او ال xml ولكن ذلك يتطلب انشاء كلاسات خاصة وعمل كثير لذلك لم أذكره .
انتظرونا في تدوينات قادمة ,, دمتم في رعاية الله .
السلام عليكم ورحمة الله وبركاته ..
ممكن موقع احمل منه خطوط للاندرويد