Monday, December 24, 2012

අදුරට එලියක්. Flash Light App - 3


 


       
      Android - App
      
        අදුරට එලියක්.

        Flash Light App - 3

    අපි මොනවද මේ code කලේ ???



මම හිතනවා, ඔයාල දැන් අපේ Android App එක run කරල බලන්න ඇති කියලා. නමුත් ඔයාල ගොඩක් දෙනෙක්, මම දාලා තිබුන code එක copy කරන්න ඇති, එහෙමත් නැත්තම් type කරලා Android එක 

හදන්න ඇති. ඉතින් අපි අද බලමු, අපි type කලේ මොනවාද? ඒවගෙ තේරුම මොකද්ද කියල.

මොනවද මේ resource files කියලා කියන්නේ?


මම කලින් ලිපියක පැහැදිලි කලා වගේ මේ resource files හරහා තමයි,  අපිට අපේ  App එකට ඕනි කරන, සම්පත් නැති නම් ප්‍රභවයන් වෙනස් කල හැකි පරිදි (වෙනස් කරනවා යැයි අදහස් කලේ, අපේ java code එකේ වෙනසක් නොකර වෙනස් කල හැකි පරිදි) ගබඩා කර තැබීමට උදවු වෙන කේතයන් කොටසක්. 

අපි අපේ මේ පොඩි App එකෙත්, එවන් වූ  resources වර්ග දෙකක් භාවිතා කරනවා. ඒ තමයි  strings හා  colors කියන ඒවා.

මම  strings.xml එක ගැන කියන්නම්.

-- > strings.xml 


මේවා  .xml tags හරහා තමයි පෙන්නලා දීලා තියෙන්නේ... මුල්ම පේලියේ තියෙන්නෙ,

      <?xml version="1.0" encoding="utf-8"?>

මේක .xml එකක්,  එම  xml version එක හා  encoding type එක මොකද්ද කියන එක. ඊට පස්සේ ඔයාලට බලන්න පුළුවන්  <resources> කියල  tag එකක්.  එම  tag එක හරහා අපි  configure කරන්න යන  resources මොනවාද කියලා අපි  xml එකට කියන්න යන්නේ. 

අපි දැන් කතා කරන්නේ, අපේ  strings.xml එක ගැන. ඒ කියන්නේ, මේකේ තියෙන්නේ, අපි  App එකේ භාවිතා කරන,  strings මොනවද කියන එක ගැන.

     <string name="to_white">To White</string>
  

ඔන්න අපේ එක  string resource එකක්.  <string> කියන tag එක යටතේ අපි "To White" කියන වාක්‍ය ඛන්ඩය අපි resource කරලා තියෙනවා. දැන් අපිට අපේ  App එකේ  "To White" කියන එක පෙන්න ගන්න ඕනි නම්, අපි කරන්නෙ අදාල  string resource එකේ, name එක භාවිතා කරන එක.මෙහිදී නම්, to_white කියන එක. මම මේ ගත්ත  resource එක භාවිතා කරපු තැනක් මෙතනම පෙන්වන්නම්.


   android:text="@string/to_white"


මේක තියෙන්නේ, main.xml එකේ, <Button> කියන tag එක ඇතුලේ. ඇත්තෙන්ම මෙතනදි වෙලා තියෙන්නෙ, අදාල  Button එකේ මට පෙන්නන්න ඔනේ "To White" කියන කොටස. 
මම ඒක මගේ  resources හරහා කරලා තියෙනවා.එතකොට මෙහි තියෙන අනිත්  string resources ඒ වගේම තමයි.



මීලගට තියෙන්නේ colors.xml

-- > color.xml
මෙහිදී මම  resource කරගෙන තියෙන්නේ මට අවශ්‍ය කරන පාටවල්.  එම  .xml එකෙත්, පෙර කී කොටස් එසේම තියෙනවා වගේම, එහි වෙනසකට තියෙන්නේ,  <color> කියන  tag එක.

       <color name="green">#00FF00</color>


එහි අපිට නොතේරෙන කොටසක් තියෙනවා. ඒක තමයි  #00FF00 කියන එක. මේ තියෙන්නේ,  අපි හැමෝම දන්න  html color code එකක්. ඉතින් ඔය වගේ color code මට මගේ  code එකේ දාල කැත
කර ගන්න බැරි නිසා තමයි මම ඒවත් මේ විදියට  resource කර ගත්තේ.

මොකද මට පාටවල් ඕනි කරන වෙලාවට, මට මගේ තියන  resources පහත ආකාරයට භාවිතා කරන්න පුළුවන් නිසා.

       android:background="@color/green"


මේක තියෙන්නෙ,  main.xml කියන  xml එකේ  <linearlayout> කියන tag එක ඇතුලේ. ඒ හරහා තමයි මම, මගේ  interface එක කොල පාට කරගෙන තියෙන්නේ. 




මොනවද මේ interface files කියලා කියන්නේ?

දැන් අපි interface ගැන බලමු එහෙනම්. අපේ  code එකේ  interfaces දෙකක් තියෙනවානේ...

මුලින්ම  main.xml බලමු.

-- > main.xml

දැන් ඔයාලට බලන්න පුළුවන්, ඔයාලට පෙනෙන  interface හා  ඒක හදා ගන්න අපි යොදා ගත්ත  xml එක.


බලන්නකො, මුලින්ම main.xml එකේ තියෙනව, <linearlayout> කියල tag එකක්. Android වල හැම interface එකක් සඳහාම,  layout එකක් තියෙනවා. අපි මෙහි යොදාගෙන තියෙන්නේ linearlayout එකක්. 

මේ layout එකට අමතරව, තවත් layout කිහිපයක්ම තියෙනවා. අපි ඒව ගැන ඉදිරි උදාහරන වලදි බලමු. ඒ <linearlayout> tag එක ඇතුලෙ, තව ගොඩක් දේවල් තියෙනව ඔයාලට දකින්න පුළුවන්. ඒවට කියන්නෙ  layout එකේ තියෙන attributes කියලා. ඒ attributes වලින් තමයි, අපේ layout එක මොනවගේ එකක් වෙන්න ඕනිද කියල අපි කියලා දෙන්නෙ...


android:orientation="vertical"      --> අපගේ layout එක සිරස් එකක්ද, තිරස් එකක්ද යන වග (මෙහි එය සිරස් එකක් බව දක්වා ඇත)

android:layout_width="fill_parent"  --> layout එකේ තිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:layout_height="fill_parent" --> layout එකේ සිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:background="@color/green"   --> layout එකේ පසුබිම් වර්ණය

android:gravity="center"            --> layout එකේ ඇති  Objects සඳහා බලපාන මූලික ස්ථාන ගත වීම (මෙහි එය මැද යන බව දක්වා ඇත)




ඊට පස්සේ ඔයාලට බලා ගන්න පුළුවන්,  <TextView> කියලා tag එකක්. මෙම  TextView හරහා තමයි, අපිට ඕනි කරන වැකි, අපගේ  interface එක මත පෙන්වන්නේ.

එහිද ඔයාලට දකින්න පුළුවන්,  attributes කිහිපයක්.

android:layout_height="wrap_content"        --> TextView එකේ සිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය කොටස් එකක් බව දක්වා ඇත)

android:layout_width="fill_parent"             --> TextView එකේ තිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:text="@string/instruction_to_white"  --> TextView එකේ දර්ශනය විය යුතු වැකිය. (ඔයාලට බලන්න පුළුවන් මෙතනදි, අපි කලින් කතා කරපු  string resource එකක් භාවිත කරල තියෙනව කියලා)

android:gravity="center"                                     --> TextView එකේ ඇති  Objects සඳහා බලපාන මූලික ස්ථාන ගත වීම (මෙහි එය මැද යන බව දක්වා ඇත)

android:textColor="@color/black"                 --> TextView එකේ ඇති අකුරු සඳහා යොදාගත යුතු වර්ණය. (මෙහිදී අපි color resource එකක් භාවිතා කරල තියෙනවා)



ඉන් පසුව තියෙන්නේ, <Button> කියලා tag එකක්. ඒකනම් ඔයාල කවුරුත් දන්න Button එකක්. අපි බලමු, ඒකෙ තියෙන attributes මොනවද කියලා.


android:id="@+id/to_green_button"           --> Button එක සඳහා අපි යොදා ගැනීමට බලාපොරොත්තු වෙන, id එක මොකද්ද යන වග. මේ id හරහා තමයි, අපි ලියන java code එකේදි, මේ  Button එක හදුනා ගන්නේ. එය ඕනෑම  Object සඳහා යොදා ගන්න පුළුවන්. ඒ වගේම ඕනිම  Object එකක් අපි java code එකේදි හදුනා ගන්නේ මේ id එක හරහායි.

android:layout_height="wrap_content"  --> Button එකේ සිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය කොටස් එකක් බව දක්වා ඇත)

android:layout_width="fill_parent"       --> Button එකේ තිරස් සැකැස්ම පූර්ණ එකක්ද, කොටස් එකක්ද යන වග (මෙහි එය පූර්ණ එකක් බව දක්වා ඇත)

android:text="@string/to_green"              --> Button එකේ දර්ශනය විය යුතු වැකිය.



අපි දැන් එක interface එකක තියෙන සියලුම  Objects මොනවාද, ඒවගේ attributes මොනවාද කියන එක කතා කලා. ඉදිරියේදි අපි භාවිතා කරන උදාහරනත් සමඟ අලුත් Objects ගැන කතා කරමු.

ඒවගේම ඔයාලත් xml එකේ දාන්න පුළුවන් tag හරහා අපිට භාවිතා කරන්න පුළුවන් වෙනත්  Objects අත්හදා බලන්න. අලුත් xml file එකක  <  මෙන්න මේ සලකුන යොදලා  Ctrl + Space ගහපුහාම, ඕනි තරම් අලුත් tags ඔයාලට බලා ගන්න පුළුවන් වේවි.


ඒවගේම තවත් දෙයක් කියන්න ඕනි. බලන්න අපි ඉහත භාවිතා කල සෑම Objects එකක් සඳහාම  android:layout_height හා  android:layout_width කියන attributes භාවිතා කරලා තියෙනවා නේද?

මෙම  attributes හරහා තමයි, අපිට interface එකේ දර්ශනය වෙන, ඕනෙම Objects එකක, සිරස් හා තිරස් ස්වභාවය ගැන විස්තර කරන්නේ. මෙම attributes නැතිනම්, ඇත්තෙන්ම Object එකක් සම්පූර්ණ නෑ.


අපගේ අනිත් interface එකත්, අපි දැන් කතා කරපු interface එකට බොහෝ දුරට සමානයි. එහි පවතින්නේ, ඉතා කුඩා වෙනස් කම් කිහිපයක් පමනයි. ඔයාලට පුළුවන් දැන් ඒ වෙනස් කම් මොනවාද කියලා හොයලා බලන්න.

එහෙනම් අපි මීළඟ ලිපියෙන් අපේ java code එක ගැන කතා කරමු.


ඔයාලට මේ කරපු දේ ටික ගැන ප්‍රශ්න තියෙනව නම් comment කරන්න නැති නම් mail කරන්න kavi707@gmail.com 


5 comments:

  1. බොහෝම ස්තූතී... දිගටම අපිත් එක්ක රැදිලා ඉන්න...

    ReplyDelete
  2. අපි හදපු මේ ඇප් එක ෆෝන් එකට දාගන්නේ කොහොමද?

    ReplyDelete
  3. ඔයාල එක වරක් හරි, නියම විඩියට Android Emulator එකේ App එක run කලා නම්, ඔයාලට ඔයාලගෙ project directory එක ඇතුලට ගියාට පස්සේ මෙන්න මේ path එකේ
    "out\production\your-app-name"
    තියෙන .apk file එක phone එකට දාල install කරන්න පුළුවන්. ඒවගේම මම පෙර ලිපියක කියලා දීල තියෙනවා කොහොමද කෙලින්ම ඔයාලගේ phone එකේම App එක deploy කරන්නේ කියලා.

    අපිත් එක්ක රැදිලා ඉන්නවට ස්තූතී...

    ReplyDelete
  4. මම මේ කියන්න යන්නේ ඔයාල interfaces වෙනස් කම් හඳුනාගත්තේ නැත්නම් ඒ ගැන කියන්න.

    ඔයාලට බලන්න පුළුවන් interfaces වල android:background කියන attributes වල, ඒවගේම

    TextView වල තියෙන
    android:text

    හා

    Button වල තියෙන
    android:id
    android:text

    attributes වල වෙනස් කම් තියෙන බව ඔයාලට දැක ගන්න පුළුවන් වේවි.

    ReplyDelete