Դաս 6 – Android Development: Android Resources Organizing & Accessing

0

Լավ Android հավելված ստեղծելու համար անհրաժեշտ է օգտագործել մի շարք տարրեր: Բացի կոդավորումից դուք պետք է ուշադիր լինեք մի շարք այլ ռեսուրսների, ինչպես ստատիկ բովանդակությունը, որը օգտագործում է ձեր կոդը օրինակ bitmaps-ը, գույները, դասավորությունը, ինտերֆեյսի տողերը, անիմացիայի հրահանգները և շատ ավելին: Այդ ռեսուրսները միշտ պահպանվում են իրարից առանձին՝ տարբեր ենթացուցակներում res/ directory-ի տակ

Այս դասընթացի ընթացքում կբացատրենք, թե ինչպես կարող եք կազմակերպել Ձեր հավելվածի ռեսուրսները, նշել այլընտրանքային ռեսուրսները և տեղադրել դրանք հավելվածում։

Կազմել ռեսուրս Android Studio-ում

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java  
      res/
         drawable/  
            icon.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml

 

anim/

XML ֆայլեր, որոնք սահմանում են անիմացիաները: Նրանք պահվում են res / anim / թղթապանակում և հասանելի են R.anim class -ից։

color/

XML ֆայլեր, որոնք սահմանում են գույների ցուցակը: Նրանք պահվում են res/color/ թղթապանակում և հասանելի են R.color class-ից։

drawable/

Image ֆայլ ինչպես .png, .jpg, .gif կամ XML ֆայլեր, որոնք կազմում են bitmaps, state lists, shapes, animation drawable-ը։ Դրանք պահվում են res/drawable/ -ում և հասանելի են R.drawable class -ից։

layout/

XML ֆայլեր, որոնք սահմանում են user interface layout-ը։ Դրանք պահվում են res/layout/ -ում և հասանելի են  R.layout class -ից։

menu/

XML ֆայլեր, որոնք սահմանում են application menu-ն, ինչպես օրինակ Options Menu, Context Menu կամ Sub Menu։ Դրանք պահվում են res/menu/ և հասանելի են   R.menu class-ից։

raw/

Կամայական ֆայլեր, որոնք պահվում են  raw տեսքով: Նման ֆայլերը բացելու համար՝ Resources.openRawResource () ռեսուրսների ID-ով, որը R.raw.filename-ն է։

values/

XML ֆայլեր, որոնք պարունակում են պարզ արժեքները, ինչպիսիք են տողերը, թվերը, և գույները։ Օրինակ, մի քանի filename կոնվենցիաներ ռեսուրսների համար, որոնք դուք կարող եք ստեղծել այս ցուցակում –

  • xml resource arrays-ի համար, հասանելի է R.arrayclass-ից
  • xml resource integers-ի համար, հասանելի է R.integerclass-ից
  • xml resource boolean-ի համար, հասանելի է R.boolclass-ից
  • xml color values-ի համար, հասանելի է R.color class-ից
  • xml dimension values-ի համար, հասանելի է R.dimenclass-ից
  • xml string values-ի համար, հասանելի է R.stringclass-ից
  • xml styles-ի համար, հասանելի է R.styleclass-ից

xml/

Կամայական XML ֆայլերը, որոնք կարող են կարդացվել է գործարկման ժամանակ Resources.getXML () –ից։ Դուք կարող եք պահպանել տարբեր կոնֆիգուրացիոն ֆայլեր այստեղ, որը կօգտագործվեն գործարկվան ժամանակ:

Այլընտրանքային Ռեսուրսներ/Alternative Resources

Ձեր հավելվածը պետք է մատակարարի այլընտրանքային ռեսուրսներ կոնկրետ սարքի կոնֆիգուրացիաները աջակցելու համար։ Օրինակ, պետք է ներառեք այլընտրանքային drawable ռեսուրսներ (i.e.images) էկրանի տարբեր բանաձևերի համար և այլընտրանքային string ռեսուրսներ տարբեր լեզուների համար: Գործարկման ժամանակ Android-ը հայտնաբերում է ընթացիկ սարքի կոնֆիգուրացիան և բեռնում համապատասխան ռեսուրսները հավելվածի համար։

Նշելու համար onfiguration-specific alternatives-ը մի շարք ռեսուրսների համար, հետևեք հետևյալ քայլերին

  • Ստեղծեք նոր directory res/ named-ում <resources_name>-<config_qualifier> ֆորմայում։ Այստեղ resources_name կլինի վերը նշված աղյուսակից որևէ ռեսուրս ինչպես՝ layout, drawable և այլ։ qualifier-ը կհատկորոշի անհատական կոնֆիգուրացիան, որոնց համար այդ ռեսուրսները պետք է օգտագործվեն: Դուք կարող եք ստուգել պաշտոնական փաստաթղթերը qualifier-երների ամբողջական ցուցակի համար տարբեր տեսակի ռեսուրսների համար։
  • Հիշեք համապատասխան այլընտրանքային ռեսուրսները այս նոր Directory-ում: resource ֆայլերը պետք է անվանվեն նույն կերպ ինչպես default resource  ֆայլերը, ինչպես ցույց է տրված ստորև բերված օրինակում։ Սակայն այդ ֆայլերը կունենան բովանդակություն որը բնորոշ է alternative-ին։ Օրինակ պատկերի ֆայլի անունը կլինի նույնը, բայց էկրանի բարձր բանաձևի համար resolution-ը կլինի բարձր։

Ահա օրինակը՝

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
         res/
            drawable/  
               icon.png
               background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml

Ահա մեկ այլ օրինակ, որտեղ նշվում է layout-ը default language-ի համար և alternative layou արաբերեն լեզվի համար:

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
      res/
         drawable/  
            icon.png
            background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         layout-ar/
            main.xml
         values/  
            strings.xml

Մուտք դեպի ռեսուրսներ

Հավելվածի ծրագրավորման ընթացքում պետք է մուտք գործել դեպի սահմանված ռեսուրսներ Ձեր կոդում կամ layout XML ֆայլերում։ Հաջորդ բաժինը բացատրում, թե ինչպես անել դա․

Մուտք գործել դեպի ռեսուրսներ կոդում

Երբ ձեր Android հավելվածը կազմվում է, գեներացվում է R դասը, որը պարունակում է resource ID-ներ բոլոր ռեսուրսների համար, որոնք հասանելի են ձեր res/ directory-ում։ Դուք կարող եք օգտագործել R դասը դեպի այդ ռեսուրս մուտք գործելու համար՝ օգտագործելով sub-directory և ռեսուրսների անունը կամ անմիջապես resource ID-ն։

Օրինակ

res/drawable/myimage.png մուտք գործելու և ImageView-ն սահմանելու համար անհրաժեշտ կլինի հետևյալ կոդը `

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

Այստեղ կոդի առաջին տողով R.id.myimageview–ից ստանում եք ImageView սահմանված id myimageview-ով Layout file-ում։ Երկրորդ տողը՝ R.drawable.myimage –ից ստանում եք image myimage անունով, որը հասանելի է  drawable sub-directory-ում /res-ի տակ։

Օրինակ

Դիտարկենք հաջորդ օրինակը որտեղ res/values/strings.xml ունի հետևյալ սահմանումը՝

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string  name="hello">Hello, World!</string>
</resources>

Այժմ դուք կարող եք սամհանել տեքսը TextView object-ում ID msg-ով օգտագործելով resource ID-ին հետևյալ կերպ՝

TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);

Օրինակ

Դիտարկենք layout-ը res/layout/activity_main.xml հետևյալ սահմանումով՝

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a TextView" />

   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a Button" />

</LinearLayout>

Հավելվածի կոդը կբեռնի layout-ը Activity-ի համար onCreate() method-ում հետևյալ կերպ՝

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main_activity);
}

Մուտք գործել դեպի ռեսուրսներ XML-ում

Դիտարկենք հետևյալ ռեսուրսի XML res/values/strings.xml ֆայլը, որը ներառում է color resource և string resource

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>

Այժմ կարող եք օգտագործել այս ռեսուրսները հետևյալ layout ֆայլում text color-ը և text string-ը սահմանելու համար հետևյալ կերպ՝

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:textColor="@color/opaque_red"
   android:text="@string/hello" />

Այժմ խորհուրդ ենք տալիս անցել դեպի  նախորդ դասը՝ Hello World օրինակը և վերանայել այն, քանի որ վստահ ենք, որ այժմ դուք ավելի լավ պատկերացում կկազմեք բոլոր հասկացությունների մասին։

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.