Myanmar Android Development မွ Android Dev Lessons မ်ားကုိ အျခား website မ်ား ၊ ျပင္ပစာအုပ္စာေပမ်ားတြင္ကူးယူေဖာ္ျပျခင္းမျပဳ ၾကပါရန္အသိေပးအပ္ပါသည္။



Wednesday, August 20, 2014

0 Comments

Android Application မ်ားေရးသားနည္း - အပုိင္း (၂၃)


ဒီေန႕သင္ခန္းစာမွာေတာ့ Android app ထဲမွာ Custom Font ထည့္သြင္းနည္းကုိေျပာျပေပးမွာျဖစ္ပါတယ္။ Custom Font ဆုိတာကေတာ့ ေဆာ့၀ဲထဲမွာ Built-in အေနနဲ႕ Font တစ္ခုကုိထည့္သြင္းေပးလုိက္မွာျဖစ္ျပီး ေဆာ့၀ဲထဲက စာသားေတြကုိ ေဆာ့၀ဲထဲမွာ Custom Font အေနနဲ႕ထည့္ေပးလုိက္တဲ့ Font ကုိအသုံးျပဳျပီး စာေပၚေပးမွာပါ။ ဒီလုိျပဳလုပ္တာကုိ Font Typeface လုိ႕လည္းေခၚပါတယ္။ ကြ်န္ေတာ္တုိ႕ျမန္မာ ေဆာ့၀ဲေတြထဲမွာ ျမန္မာစာ font ကုိ Built-in ထည့္သြင္းေပးလုိက္တာတို႕ ၊ ျမန္မာစာမရွိတဲ့ ဖုန္းေတြမွာ ျမန္မာေဆာ့ု၀ဲေတြကုိ ျမန္မာလုိျမင္ရတယ္တုိ႕ဆုိတာ ဖန္တီးထားတဲ့ေဆာ့၀ဲထဲမွာ အခုေျပာမယ့္ Custom Font ျဖင့္အစားထုိးအသုံးျပဳျခင္း /Typeface နည္းကုိအသုံးျပဳထားလုိ႕ပဲျဖစ္ပါတယ္။

ပထမဆုံးအေနနဲ႕ ကြ်န္ေတာ္တုိ႕ရဲ႕ ကြန္ပ်ဴတာထဲမွာ Font တစ္ခုေတာ့အသင့္ရွိထားရပါမယ္။ Android app ထဲမွာ Custom Font အေနနဲ႕ထည့္သြင္းလုိတဲ့ Font ကုိဆုိလုိတာပါ။ Font ကုိ ကြ်န္ေတာ္တုိ႕ Project folder ထဲက assets ဆုိတဲ့ Folder ထဲမွာထည့္သြင္းထားရမွာပါ။ ထည့္သြင္းပုံကေတာ့ ကြန္ပ်ဴတာထဲမွာ အသင့္ေဆာင္ထားတဲ့ Font ဖုိင္ (.ttf) ကုိ Copy ကူးျပီး Project ထဲက assets folder ေပၚမွာ right click ႏွိပ္ျပီး paste လုပ္လုိက္ရုံပါပဲ။ ထည့္သြင္းျပီးသြားရင္ေတာ့
ကုိယ္ထည့္ထားတဲ့ Font file ေလးကုိ Project ရဲ႕ assets folder ထဲမွာေတြ႕ရပါမယ္။

ျပီးရင္ေတာ့ Project ထဲက res folder ထဲက layout folder ထဲကုိ၀င္ပါ။ မိမိ Custom Font ထည့္လုိတဲ့ Layout xml file တစ္ခုကုိ ႏွိပ္လုိက္ပါ။


Form Widget ထဲကေန TextView တစ္ခုကုိ Drag & Drop လုပ္ျပီး ဖုန္း Screen layout ေပၚကုိတင္လုိက္ပါ။

Properties box မွာ TextView ကို ID ျပန္ျပင္လုိက္ပါ။ ကုိယ္ၾကိဳက္ႏွစ္သက္ရာ ID တစ္ခုခုေပးလုိက္ပါ။

ကြ်န္ေတာ္ကေတာ့ ID ကုိ t1 လုိ႕ နာမည္အလြယ္ပဲေပးလုိက္ပါတယ္။ 
ID ေပးျပီးရင္ ADT Eclipse ေဆာ့၀ဲရဲ႕ Menu bar က File ထဲကုိ၀င္ျပီး Save ကုိႏွိပ္ပါ။ (ID ေပးျပီးတုိင္း တစ္ခါ save ရပါမယ္)

TextView မွာေပၚခ်င္တဲ့စာသားကုိျပင္ခ်င္ရင္ေတာ့ TextView ရဲ႕ Properties Box ထဲမွာပဲ  Text ဆုိတာကုိလုိက္ရွာပါ။ အဲဒီေနရာမွာ ေပၚခ်င္တဲ့စာသားကုိျပင္လုိ႕ရပါတယ္။

ျပီးရင္ ယင္း Layout နဲ႕သက္ဆုိင္တဲ့ Java ဖုိင္ကုိသြားပါ။
setContentView(); စာသားရဲ႕ေအာက္တစ္ေၾကာင္းေနရာမွာ ေအာက္ပါ code ကုိထည့္ပါ။

TextView tx = (TextView)findViewById(R.id.t1);
 
R.id. ရဲ႕ေနာက္က t1 ဆုိတာက ခုနက layout ထဲမွာတုန္းက TextView ကုိေပးခဲ့တဲ့ ID name ကုိဆုိလုိတာပါ။
 
code အျပည့္အစုံကုိနမူနာျပရရင္ေတာ့ ေအာက္ပါအတုိင္းပါ။
 
package com.example.customfonts;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      TextView tx = (TextView)findViewById(R.id.t1);
     
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }
} 


TextView ကုိ Project ထဲမွာ Custom ထည့္ထားတဲ့ Font နဲ႕ခ်ိတ္ပါမယ္။ 
      TextView tx = (TextView)findViewById(R.id.t1) စာေၾကာင္းရဲ႕ေအာက္မွာ Custom Typeface 
code ကုိထည့္ရပါမယ္။
 
Typeface custom_font = Typeface.createFromAsset(getAssets(), "zawgyi.ttf"); 


Typeface စာေၾကာင္းကုိထည့္ျပီးျပီဆုိရင္ေတာ့ ယင္း Typeface code ရဲ႕ေအာက္တစ္ေၾကာင္းေနရာမွာ 
ခုနက TextView ကုိ Typeface နဲ႕ခ်ိတ္ဆက္ရပါမယ္။ ေအာက္ပါ code ကုိထပ္ထည့္လုိက္ပါ။

tx.setTypeface(custom_font);
 
code အျပည့္အစုံကုိနမူနာျပရရင္ေတာ့ ေအာက္ပါအတုိင္းပါ။
 
package com.example.customfonts;

import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      TextView tx = (TextView)findViewById(R.id.hello);
      Typeface custom_font = Typeface.createFromAsset(getAssets(),
      "zawgyi.ttf");
      tx.setTypeface(custom_font);
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }
}  
 
ျပီးရင္ေတာ့ ဖုန္း (သုိ႕) Emulator နဲ႕ Project ကုိ စမ္းသပ္ run ၾကည့္ပါ။ TextView ေနရာမွာ ေပၚမယ့္ Font 
ဒီဇဳိင္းဟာ Custom ထည့္ထားတဲ့ Font နဲ႕ေပၚမွာျဖစ္ပါတယ္။ ဘာ Font ကုိပဲျဖစ္ျဖစ္ ဒီနည္းနဲ႕လုပ္လုိ႕ရပါတယ္။
  
 
 
 

 
 




Myanmar Android Development မွ Android Dev Lessons မ်ားကုိ အျခား website မ်ား ၊ ျပင္ပစာအုပ္စာေပမ်ားတြင္ကူးယူေဖာ္ျပျခင္းမျပဳ ၾကပါရန္အသိေပးအပ္ပါသည္။