Cara Membuat Android Resources | Tutorial
Setiap aplikasi mengandung kode dan Resources. Meskipun kode menyediakan perilaku aplikasi, sumber daya bersifat statis yang memberikan informasi konfigurasi ke perilaku atau ditampilkan di UI. Contoh sumber daya aplikasi adalah gambar, nilai teks, file xml, audio dan video, font, definisi warna, menu, animasi, dan tata letak antarmuka pengguna.
Android Resources
Kode aplikasi Android disimpan di bawah folder java dan sumber daya disimpan di bawah folder res seperti yang ditunjukkan pada gambar di bawah ini. Menjaga sumber daya yang terpisah dari kode membuatnya mudah untuk mempertahankan dan meningkatkan aplikasi.
Accessing Resources
Android Resources
Kode aplikasi Android disimpan di bawah folder java dan sumber daya disimpan di bawah folder res seperti yang ditunjukkan pada gambar di bawah ini. Menjaga sumber daya yang terpisah dari kode membuatnya mudah untuk mempertahankan dan meningkatkan aplikasi.
Di bawah ini adalah folder sumber daya yang berada di bawah folder res dan digunakan untuk memasukkan berbagai sumber daya dalam aplikasi Android.
- layout /: tata letak antarmuka pengguna file xml. drawable /: file bitmap dan file xml yang bisa digambar .
- mipmap /: gambar ikon peluncur atau file yang dapat digambar
- values /: file xml berisi nilai-nilai sederhana seperti string, integer, array, warna, dimens dan gaya .
- menu /: file xml yang mendefinisikan item menu untuk menu konteks , menu opsiatau sub menu.
- color /: color state xml file yang mendefinisikan warna berbeda untuk tampilan di negara bagian yang berbeda.
- animator /: file xml animasi properti .
- anim /: lihat file animasi xml.
- xml /: simpan file xml lainnya, contoh file JSON.
- font /: file font dan file xml keluarga font .
- raw /: file lainnya dalam bentuk mentah untuk dibuka menggunakan Resources.openRawResource ().
Untuk masing-masing dan setiap sumber daya yang ditambahkan ke folder res, kompilator menghasilkan id sumber daya yang digunakan untuk mengakses sumber daya dalam aplikasi. Compiler menciptakan kelas R yang berisi semua id sumber daya. Anda dapat mengakses sumber daya dari kode dan xml.
Contoh di bawah menunjukkan mengakses sumber daya dalam kode.
Toast.makeText(this,
getResources().getString(R.string.login_fail),
Toast.LENGTH_SHORT).show();
Contoh di bawah ini menunjukkan mengakses sumber daya dalam xml
<TextView
android:id="@+id/coupon_hd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
. . .
android:text="@string/coupon_head"
/>
Mengakses sumber daya platform android.
Animation imgAnimationIn = AnimationUtils.
loadAnimation(this, android.R.anim.slide_in_left);
imageSwitcher.setInAnimation(imgAnimationIn);
Menggunakan objek Sumber Daya, yang dapat diperoleh dengan memanggil getResources () metode dalam aktivitas, Anda dapat memuat sumber daya dalam kode menggunakan berbagai metode seperti getColor, getColorStateList, getDimension, getDrawable, getFont, getLayout, getInteger, getString, openRawResource, ..etc.
Drawable d = getResources().getDrawable(R.drawable.national_animal, null);
((ImageView)findViewById(R.id.img)).setImageDrawable(d);
Contoh di bawah menunjukkan cara mengakses atribut tema saat ini dari xml.
<Button
android:id="@+id/submit_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
. . .
android:elevation="?android:elevation"/>
Alternate Resources
Android mendukung varian sumber daya yang dijelaskan di atas untuk konfigurasi perangkat yang berbeda. Anda dapat menyediakan sumber daya pengganti untuk ukuran layar yang berbeda, untuk bahasa yang berbeda , untuk orientasi yang berbeda, ..etc. Saat runtime, android memilih sumber daya yang tepat berdasarkan konfigurasi perangkat.
Folder sumber daya yang dijelaskan di bagian atas adalah folder sumber daya default. Tergantung pada jenis sumber alternatif yang ingin Anda buat, Anda perlu menambahkan - <qualifier> ke nama folder sumber daya default.
Misalnya untuk menyediakan antarmuka pengguna yang berbeda untuk ukuran layar yang berbeda, Anda perlu membuat file xml tata letak terpisah untuk layar default, besar dan ekstra besar dan menyimpannya dalam tata letak, folder besar dan tata letak-xlarge masing-masing. Nama folder berisi besar dan xlarge, ini adalah kualifikasi dan android menggunakannya untuk mengidentifikasi folder sumber daya berdasarkan konfigurasi perangkat.
Berikut ini beberapa varian sumber daya yang banyak digunakan dan kualifikasinya.
- Ukuran layar: Untuk ukuran layar perangkat yang berbeda, sumber daya yang berbeda seperti gambar yang dapat digambar, tata letak, .. dll dapat dibuat untuk memberikan pengalaman UI yang berbeda kepada pengguna. Kualifikasi nama folder kecil, normal, besar dan xlarge.
- Orientasi layar: Sumber alternatif dapat disediakan untuk orientasi potret dan lanskap. Kualifikasi nama folder adalah port dan tanah.
- Versi Android: Sumber daya alternatif dapat digunakan untuk berbagai versi Android. Kualifikasi nama folder adalah v19, v21, v24, v26 ..etc.
- Kerapatan piksel layar: Untuk kepadatan piksel layar yang berbeda, Anda dapat memberikan sumber daya yang berbeda sehingga android mengambil sumber daya yang tepat berdasarkan kepadatan layar perangkat. Kualifikasi nama folder adalah ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi, nodpi, tvdpi, anydpi dan nnndpi.
- Bahasa: Anda dapat membuat sumber daya yang berbeda untuk bahasa yang berbeda sehingga android memilih sumber daya yang tepat berdasarkan perangkat lokal. Contoh nama penyesuai folder adalah b + en-US, b + hi-IN, b + ja-JE, ..etc.
- Sumber daya yang berbeda dapat diberikan untuk berbagai kode negara bergerak (MCC) dan cod jaringan seluler (MNC) sehingga aplikasi dapat dibuat untuk menampilkan sumber daya berdasarkan negara yang menjadi nomor ponsel atau berdasarkan pada operator jaringan seluler perangkat yang terhubung ke .
- Anda dapat menyediakan sumber daya yang berbeda untuk tata letak-arah-kanan-ke-kiri dan tata-letak-arah-kiri-ke-kanan. Nama penyusun folder adalah ldrtl dan ldltr.
Remote Config
Sumber daya yang disimpan di bawah folder res adalah bagian dari APK dan akan ada di perangkat pengguna setelah aplikasi diinstal. Jika Anda ingin mengubah sumber daya, Anda harus merilis versi baru dari aplikasi Anda yang berisi sumber daya yang diubah. Perubahan sumber daya hanya akan tersedia bagi pengguna setelah mereka meningkatkan aplikasi Anda.
Untuk mencegah rilis yang sering terjadi untuk perubahan konfigurasi, Anda dapat menggunakan konfigurasi jarak jauh Firebase yang memungkinkan Anda mengubah nilai untuk parameter konfigurasi dan membuatnya tersedia untuk aplikasi tanpa merilis versi baru dan memutakhirkannya.
Contoh Android Alternate Resources
Contoh di bawah menunjukkan cara membuat sumber daya pengganti untuk orientasi perangkat. Dua tata letak layar pendaftaran terpisah untuk potret dan lansekap dibuat dan disimpan dalam tata letak dan tata letak masing-masing.
Output potret
Output lanskap
Tata Letak Default
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="8dp">
<android.support.design.widget.TextInputLayout
android:id="@+id/name_l"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Name"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/address_l"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<EditText
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Address"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/city_l"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<EditText
android:id="@+id/city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="City"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/phone_l"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<EditText
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Phone"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/email_l"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Email"/>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
style="@style/Widget.AppCompat.Button.Colored"
android:text="Submit"/>
</LinearLayout>
Layout Lanskap
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp">
<android.support.design.widget.TextInputLayout
android:id="@+id/name_l"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/address_l"
app:layout_constraintTop_toBottomOf="parent">
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Name"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/address_l"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintLeft_toRightOf="@+id/name_l"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent">
<EditText
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Address"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/city_l"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/state_l"
app:layout_constraintTop_toBottomOf="@+id/name_l">
<EditText
android:id="@+id/city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="City"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/state_l"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintLeft_toRightOf="@+id/city_l"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/name_l">
<EditText
android:id="@+id/state"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="State"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/phone_l"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/email_l"
app:layout_constraintTop_toBottomOf="@+id/city_l">
<EditText
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Phone"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/email_l"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintLeft_toRightOf="@+id/phone_l"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/city_l">
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="Email"/>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/submit"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
style="@style/Widget.AppCompat.Button.Colored"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/email_l"
android:text="Submit"/>
</android.support.constraint.ConstraintLayout>
Aktivitas
public class AlternateResourceActivity extends AppCompatActivity {
private static final String TAG = "AlternateResourceA";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alternate_activity);
}
}
Semoga Bermanfaat & Selamat Mencoba ~
0 Response to "Cara Membuat Android Resources | Tutorial"
Post a Comment