Latest web development tutorials

Sumber android (Sumber Daya) manajemen

Ada banyak hal yang digunakan untuk membangun sebuah aplikasi Android yang sangat baik. Selain coding aplikasi, Anda perlu fokus pada berbagai sumber daya, seperti Anda menggunakan berbagai konten statis, seperti bitmap, warna, definisi tata letak, string user interface, animasi dan sebagainya. Sumber daya ini umumnya ditempatkan di res / subdirektori standalone proyek.

Bagian ini dari tutorial akan belajar bagaimana mengatur sumber daya aplikasi Anda, tentukan sumber alternatif, dan mengaksesnya dalam aplikasi Anda.


sumber daya organisasi dalam gerhana

Anda akan perlu untuk ditempatkan di setiap sumber daya di bawah subdirektori spesifik res proyek Anda / direktori. Misalnya, ini adalah proyek file-level sederhana:

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml 

res / direktori berisi semua sumber daya di berbagai subdirektori. Berikut adalah sumber daya gambar, dua sumber tata letak dan file sumber daya string. Tabel berikut memberikan rinci dalam res proyek sumber / direktori dukungan.

direktori sumber daya Type
anim / file XML yang mendefinisikan properti animasi. Mereka disimpan di res / anim / folder, dengan jenis akses R.anim
warna / file XML yang mendefinisikan daftar status warna. Mereka disimpan di res / warna / folder, dengan jenis akses R.color
ditarik / file gambar, seperti .png, .jpg, .gif, atau file XML, dikompilasi sebagai bitmap, daftar negara, bentuk, gambar animasi. Mereka disimpan di res / ditarik / folder, dengan jenis akses R.drawable
layout / Kustom UI tata letak file XML. Mereka disimpan di res / layout / folder, dengan jenis akses R.layout
menu / Kustom menu aplikasi file XML, seperti menu Options, menu konteks, sub-menu. Mereka disimpan di res / menu / folder, dengan jenis akses R.menu
baku / Setiap file disimpan dalam bentuk aslinya. Kita perlu R.raw.filename bernama ID sumber daya, untuk membuka file mentah dengan memanggil Resource.openRawResource ()
nilai / file XML mengandung nilai-nilai sederhana (seperti string, integer, warna, dll). Berikut ini beberapa sumber di bawah konvensi folder penamaan. arrays.xml atas nama array sumber daya, melalui jenis R.array akses; integers.xml merupakan bilangan bulat dari sumber diakses melalui R.integer kelas; sumber bools.xml atas nama nilai-nilai Boolean, jenis akses oleh R.bool; sumber colors.xml atas nama warna, diakses melalui kelas R.color; perwakilan dimens.xml dimensi nilai-nilai, melalui jenis R.dimen akses; strings.xml merupakan sumber daya string, melalui jenis R.string akses; perwakilan styles.xml sumber daya gaya, dengan jenis akses R.style
xml / Dengan memanggil Resources.getXML () untuk membaca file XML sewenang-wenang pada saat runtime. Berbagai file konfigurasi dapat disimpan runtime sini

Sumber alternatif

aplikasi Anda perlu menyediakan sumber daya untuk mendukung konfigurasi alternatif untuk perangkat tertentu. Misalnya, Anda perlu memberikan gambaran alternatif sumber daya untuk resolusi layar yang berbeda, memberikan sumber alternatif string bahasa yang berbeda. Pada runtime, Android mendeteksi konfigurasi perangkat saat ini, dan memuat sumber daya yang tepat untuk suatu aplikasi.

Untuk mengidentifikasi seperangkat sumber daya alternatif untuk konfigurasi tertentu, mengikuti langkah-langkah dari:

  • Buat res direktori baru / ke <resource_name> _ <config_qualifier> diberi nama. Berikut resources_name sumber daya apapun yang disebutkan dalam tabel, seperti tata letak dan gambar. kualifikasi akan menentukan sumber daya apa untuk menggunakan konfigurasi pribadi. Anda dapat melihat dokumentasi resmi untuk daftar lengkap dari berbagai jenis kualifikasi sumber daya.
  • Menghemat sumber daya alternatif dalam menanggapi direktori ini. file sumber daya ini harus menunjukkan default nama file sumber daya konsisten dengan contoh berikut, bagaimanapun, dokumen-dokumen ini akan menentukan isi substitusi. Sebagai contoh: Sementara nama file gambar itu sama, tapi resolusi layar resolusi gambar akan lebih tinggi.

Berikut adalah contoh, untuk menentukan gambar default dari layar dan resolusi tinggi substitusi gambar.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
       res/
          drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml

Berikut ini adalah contoh lain, untuk menentukan bahasa tata letak default dan layout alternatif bahasa Arab.

MyProject/
   src/
    main/
    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

Akses ke sumber daya

Dalam pengembangan aplikasi, kita perlu akses ke sumber daya yang ditetapkan, baik melalui kode atau melalui file XML. Bagian berikut menjelaskan cara mengakses sumber daya tersebut secara terpisah dalam dua skenario.

Dalam kode untuk mengakses sumber daya

Ketika aplikasi Android dikompilasi untuk menghasilkan R kelas, yang berisi ID dan semua res sumber / direktori. Anda dapat menggunakan kelas R, + dengan nama sumber daya subclass atau langsung menggunakan ID sumber daya untuk mengakses sumber daya.

contoh

res akses / ditarik / myimage.png, dan set ke ImageView, Anda akan menggunakan kode berikut:

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

Baris pertama dari kode di sini untuk mendapatkan R.id.myimageview didefinisikan myimageview dari ImageView dalam file layout. Baris kedua dengan R.drawable.myimage untuk mendapatkan gambar di res / ditarik di dalam subdirektori bernama myimage.

contoh

Pertimbangkan contoh di mana res / values ​​/ strings.xml didefinisikan sebagai berikut:

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

Sekarang Anda dapat menggunakan ID dari msg objek TextView ID sumber daya untuk mengatur teks, sebagai berikut:

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

contoh

Pertimbangkan definisi berikut dari res layout / tata letak / 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>

Kode aplikasi akan memuat tata letak aktivitas, onCreate () metode sebagai berikut:

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

Akses di XML

Pertimbangkan XML berikut file sumber daya res / values ​​/ strings.xml, yang berisi sumber daya warna dan sumber daya 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" />

Sekarang, Anda dapat menggunakan sumber daya ini dalam file layout berikut untuk mengatur warna teks dan konten teks:

<code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;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" /&gt;
</code>

Sekarang, jika Anda kembali ke bagian sebelumnya untuk menjelaskan "Hello World!" Instance, saya bisa mengkonfirmasikan Anda di bagian ini semua memiliki pemahaman yang lebih baik dari konsep. Oleh karena itu, saya sangat menyarankan untuk kembali untuk melihat contoh sebelumnya, dan saya menggunakan pandangan yang berbeda dari penggunaan sumber daya dasar.