Struktur & Pemakaian Tenologi Game Pembuatan Resource
What is XML? l
XML stands for EXtensible Markup Language
l
XML is a markup language much like HTML
l
XML was designed to carry data, not to display data
l
XML tags are not predefined. You must define your own tags
l
XML is designed to be self-descriptive
l
XML is a W3C Recommendation
l
XML adalah case sensitif
Syntax XML XML harus memiliki element Root
<subchild attribut=”atribut value”>.....
Nilai untuk XML attribut harus diberi tanda petik “ Ada lima predefined entity di XML <; < >; > &; '; ";
less than greater than & ampersand ' apostrophe " quotation mark
Ini adalah komentar pada XML
Pembuatan Resources Anda disarankan untuk melakukan eksternalisasi terhadap sumber daya seperti Gambar dan String pada aplikasi anda dari pada langsung mendeklarasikannya pada kode aplikasi. Manfaat: Memudahkan pemeliharaan, memudahkan customization, Reuse, dan Lokalisasi. Eksternalisasi dilakukan dengan menempatkan sumber daya tersebut pada folder /res pada project. http://developer.android.com/guide/topics/resources/providing- resources.html
Struktur Res Pada folder drawable-xxxx, ditempatkan icon sesuai dengan masing-masing dpi. Pada folder layout, ditempatkan xml file untuk antarmuka masing- masing activity Pada folder value, ditempatkan xml file yang berisi deklarasi untuk values.
Drawable Untuk masing-masing resolusi layar, anda perlu menyiapkan icon dengan skala menurut mdpi. Misalnya ukuran icon baseline adalah 48x48, maka untuk ldpi adalah 36x36, dan untuk hdpi adalah 72x72. Lakukan copy & paste untuk memasukan icon pada masing- masing folder.
Resource Reference Android Resource
Reference from XML
Reference from Java
Res/layout/main.xml
@layout/main
R.layout.main
Res/drawable-xxxx/file.png
@drawable/file
R.drawable.file
<string name=”helloWorld”>
@string/HelloWorld
R.string.HelloWorl d
@+id/helloText
@id/helloText
R.id.helloText
String Resource String Resources, mendefinisikan string, string array dan plurals (termasuk format string), disimpan pada res/values dan diakses melalui R.string, R.array, dan R.plurals
String Disimpan pada file res/strings.xml
<string name="hello">Hello!
Pemakaian pada layout
Pemakaian pada aplikasi String string = getString(R.string.hello);;
Anda dapat juga menggunakan getString(int) maupun getText(int)
String Array Disimpan pada file strings.xml
<string-array name="planets_array"> - Mercury
- Venus
- Earth
- Mars
Pemakaian pada aplikasi Resources res = getResources();; String[] planets = res.getStringArray(R.array.planets_array);;
Plurals Disimpan pada file strings.xml
- One song found.
- %d songs found.
Pemakaian pada aplikasi int count = getNumberOfsongsAvailable();; Resources res = getResources();; String songsFound = res.getQuantityString(R.plurals.numberOfSongsAvailable, count, count);;
Escaping Escaping apostrophes dan quotes <string name="good_example">"This'll work" <string name="good_example_2">This\'ll also work <string name="bad_example">This doesn't work <string name="bad_example_2">XML encodings don';t work
Formatting Strings Jika anda perlu melakukan format string dengan String.format(String, object, …) maka anda dapat menempatkan format string sebagai berikut: Resource <string name="welcome_messages">Hello, %1$s! You have %2$d new messages. Java Resources res = getResources();; String text = String.format(res.getString(R.string.welcome_message s), username, mailCount);;
Styling dengan HTML markup Anda dapat menambahkan styling pada string anda dengan HTML markup, sebagai contoh:
<string name="welcome">Welcome to Android!
Supported HTML elements include:
for bold text. for italic text. for underline text.
Resource Type Bool file location: res/values/filename.xml The filename is arbitrary. The element's name will be used as the resource ID. resource reference: In Java: R.bool.bool_name In XML: @[package:]bool/bool_name syntax: [true | false] Java Resources res = getResources();; boolean variable = res.getBoolean(R.bool.bool_name);; Layout
Resource Type Color file location: res/values/colors.xml The filename is arbitrary. The element's name will be used as the resource ID. resource reference: In Java: R.color.color_name In XML: @[package:]color/color_name syntax: #RGB #ARGB #RRGGBB hex_color #AARRGGBB Java Resources res = getResources();; int color = res.getColor(R.color.color_name);; Layout
Resource Type Dimension file location: res/values/filename.xml The filename is arbitrary. The element's name will be used as the resource ID. resource reference: In Java: R.dimen.dimension_name In XML: @[package:]dimen/dimension_name syntax: dimension Java Resources res = getResources();; float fontSize = res.getDimension(R.dimen.font_size);; Layout
Satuan pada Dimension dp Density-independent Pixels – Suatu satuan abstrak berdasarkan ukuran density layar fisik. Satuan ini relatif kepada 160 dpi (dots per inch) pada layar, pemakaian dp akan membuat tampilan konsistem pada peralatan yang memiliki jumlah pixel per inchi yang berbeda sp Scale-independent Pixels – Serupa dengan dp, direkomendasikan untuk pemakaian pada ukuran font. pt Points - 1/72 dari satu inchi pada ukuran fisik layar. px Pixels – Sesuai dengan ukuran pixel pada layar, unit ini tidak direkomendasi karena akan menyebabkan tampilan yang berbeda pada peralatan yang berbeda, karena peralatan yang berbeda dapat memiliki jumlah pixel per inchi yang berbeda pada layar. mm Millimeters – berdasarkan ukuran layar fisik. in Inches – berdasarkan ukuran layar fisik.
Contoh 25dp 150dp 30dp 16sp Java Resources res = getResources();; float fontSize = res.getDimension(R.dimen.font_size);; Layout
Resource Type Integer file location: res/values/filename.xml The filename is arbitrary. The element's name will be used as the resource ID. resource reference: In Java: R.integer.integer_name In XML: @[package:]integer/integer_name syntax: integer Java Resources res = getResources();; int maxSpeed = res.getInteger(R.integer.integer_name);;
Latihan Buatlah String resource sebagai berikut dan simpan pada file pesan.xml:
String name
Text
selamat_belajar
Selamat Belajar Android
selamat_tahun_baru
Happy new year
lebih_besar
Nilai 3 > 6
Tampilkan masing-masing String resource tersebut diatas pada TextView pada TextView. Pesan1, selamat_belajar Pesan2, selamat_tahun_baru Pesan3, lebih_besar Tambahkan Array String yang mendeklarasikan nama-nama hari dalam minggu (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu), dan simpan pada file hari.xml. Tambahkan plural berikut ini (One item, %d items)
Tugas Semua text disimpan pada String Resources
Buatlah suatu project Android <string name="hello">Hello World, HitungSegitigaActivity! name="app_name">Mari Hitung Segitiga HitungSegitiga dengan <string <string name="lbl_panjang">Panjang <string name="lbl_lebar">Lebar launcher sebagai <string name="lbl_luas">Luas persegi panjang adalah: %1$.2f <string name="lbl_hitung">Hitung berikut : <string name="lbl_none">Belum Ada Hasil
public class HitungSegitigaActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void hitungOnClick(View target) { TextView panjang = (TextView) findViewById(R.id.editPanjang); TextView lebar = (TextView) findViewById(R.id.editLebar); TextView hasil = (TextView) findViewById(R.id.lbl_luas); Double nPanjang = Double.parseDouble(panjang.getText().toString()); Double nLebar = Double.parseDouble(lebar.getText().toString()); Double nHasil = nPanjang * nLebar; Resources res = getResources(); hasil.setText(String.format(res.getString(R.string.lbl_luas),nHasil)); } }
Sekian & Terima Kasih