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><?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" /> </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.