font

এই পর্বে আমরা দেখবো অ্যাপের ভিতরে কিভাবে বিভিন্ন রকমের ফন্ট নিয়ে কাজ করতে পারি । ডিফল্ট ফন্ট সহ কোন একটি লাইনের ফন্টও কিভাবে বদলাতে পারি । আমাদের আজকের তৈরি অ্যাপ যেভাবে দেখাবে -

এখানে ডিফল্ট ফন্ট চেঞ্জ করা সহ বাটনের ফন্টও আলাদাভাবে আবার চেঞ্জ করে দিয়েছি  । বাটন নেয়ার পিছনে কোন কারন নেই , এম্নিতেই বাটন নেয়া ।

তো চলুন লেআউট এ এই ভিউ ৩টির xml ডিজাইন করে ফেলি  -

activity_main.xml -

 <?xml version="1.0" encoding="utf-8"?>  
 <LinearLayout  
   xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:app="http://schemas.android.com/apk/res-auto"  
   xmlns:tools="http://schemas.android.com/tools"  
   android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   android:orientation="vertical"  
   android:padding="20dp"  
   tools:context="com.example.user.learnfromyoutube.MainActivity">  
   <TextView  
     android:id="@+id/textView"  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:padding="15dp"  
     android:text="Hi , I am Mashiur Rahman Sajib"  
     android:textColor="@android:color/holo_green_dark"  
     android:textSize="30sp"/>  
   <Button  
     android:id="@+id/btn"  
     android:layout_width="150dp"  
     android:layout_height="wrap_content"  
     android:text="Click"  
     android:textSize="25sp"  
     android:padding="10dp"  
     android:layout_marginTop="15dp"  
     android:background="@android:color/holo_green_light"  
     android:textStyle="bold"  
     android:textColor="#fff"  
     android:layout_gravity="center"/>  
   <TextView  
     android:layout_width="match_parent"  
     android:layout_height="wrap_content"  
     android:textSize="30sp"  
     android:layout_marginTop="10dp"  
     android:text="Daffodil International University"  
     android:padding="5dp"  
     android:textColor="@android:color/holo_green_dark"/>  
 </LinearLayout>  

ডিফল্ট ফন্ট চেঞ্জ করতে একটি লাইব্রেরীর হেল্প নিবো । build.gradle(Module: app) ফাইলের ডিপেন্ডেন্সি তে লাইব্রেরী এড করে দিতে হবে । লাইব্রেরী টা হলো -

 compile 'me.anwarshahriar:calligrapher:1.0'  



MainActivity.java -

 public class MainActivity extends AppCompatActivity {  
   Button button;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     button = findViewById(R.id.btn);  

বাটন এর আইডি নিয়ে নিলাম । এখন নেট থেকে দুইটা ফন্ট ডাউনলোড করে নেই । নেটে Free font লিখে সার্চ দিলেই অনেক ওয়েবসাইট পেয়ে যাবেন । তবু আমি কিছু লিংক দিয়ে দিলাম - fontspace , 1001freefonts , এখান থেকে আপনি আপনার ইচ্ছামত ফন্ট নামিয়ে নিন । সম্ভবত zip আকারে নামবে । zipথেকে Extract করে .ttf বা .otf ফাইলটি কপি করুন । এবার Android Studio তে গিয়ে app এ রাইট ক্লিক করে New -> folder ->Assets folder এ ক্লিক করে  Finish বাটনে প্রেস করুন । দেখবেন app এ Assets নামে নতুন ডিরেক্টরি ফাইল খুলে গেছে । এবার Assets রাইট ক্লিক করে ফন্ট গুলো paste করে দিন 😊


 এরপর ডিফল্ট ভ্যালু চেঞ্জ করতে যে ম্যাথডটি লিখতে হবে -

     Calligrapher calligrapher = new Calligrapher(getApplicationContext());  
     calligrapher.setFont(this,"chunkfive.otf",false);  

এরফলে আপনার অ্যাপের সকল ফন্টের আকার এই chunkfive.tff এর মত হয়ে যাবে । এখন যদি আমরা চাই কোন একটি নির্ধারিত কোন ভিউ বা লেখার ফন্ট চেঞ্জ করতে তাহলে Typeface ক্লাসের সাহায্য নিতে হবে । যে ম্যাথড টি লিখতে হবে -

     Typeface myCustomFonts = Typeface.createFromAsset(getAssets(),"cantarell_regular.ttf");  
     button.setTypeface(myCustomFonts);  

নির্ধারিত কোন ভিউ এর ফন্ট এবং ডিফল্ট ফন্ট দুইটাই চেঞ্জ করলে আগে ডিফল্ট ফন্ট চেঞ্জ করে নিবেন । কেননা কোড লাইন বাই লাইন এক্সিকিউট করে সো আগে কোন ভিউ এর ফন্ট চেঞ্জ করার পর যদি ডিফল্ট ফন্ট চেঞ্জ করেন তাহলে সকল ফন্টের আকার ডিফল্ট ফন্ট অনুযায়ী হয়ে যাবে ।

এবার অ্যাপটি রান করুন 😊😊😊😊

MainActivity.java  ফুল কোড -

 package com.example.user.learnfromyoutube;  
 import android.graphics.Typeface;  
 import android.support.v7.app.AppCompatActivity;  
 import android.os.Bundle;  
 import android.widget.Button;  
 import me.anwarshahriar.calligrapher.Calligrapher;  
 public class MainActivity extends AppCompatActivity {  
   Button button;  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
     button = findViewById(R.id.btn);  
     Calligrapher calligrapher = new Calligrapher(getApplicationContext());  
     calligrapher.setFont(this,"chunkfive.otf",false);  
     Typeface myCustomFonts = Typeface.createFromAsset(getAssets(),"cantarell_regular.ttf");  
     button.setTypeface(myCustomFonts);  
   }  
 }  
😊😊😊😊😊😊😊😊

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

Spinner View - 11 ( Android Bangla Tutorial)

ImageView ( Android Bangla Tutorial - )

Toggle Button - 10 ( Android Bangla Tutorial)