So, biasanya ketika kamu membuat aplikasi dengan menyertakan tombol di dalamnya, kamu akan mendapatkan tampilan seperti di bawah ini, tampilan tombol default.
- state_pressed : state apabila sebuah tombol ditekan/dipijit
- state_focused : state apabila sebuah tombol disorot/dipilih/dihover
- state_normal : state apabila tombol dalam keadaan tidak menerima event apapun
Nah, sekarang kita akan mencoba membuat tombol sendiri menggunakan ImageButton. Image Button adalah suatu object yang termasuk ke dalam elemen View pada Android, yang memungkinkan kita membuat tombol dengan background diambil dari gambar kita sendiri. Dan pastinya, ImageButton yang kita buat juga akan mempunyai ketiga state tersebut, disinilah tantangannya, bagaimana kita mendesain tampilan yang sesuai untuk ketiga state tersebut.
Oke, layoutnya kira-kira seperti ini,
Inilah ketiga tampilan tombol sesuai dengan state/event yang mereka miliki.
The Code
Oke, desain sudah, background sudah, sekarang tinggal mengaplikasikannya. Silahkan buka Eclipse, dan buat proyek standar Android. Minimal SDK terserah, namun pada proyek ini saya memakai Android versi 2.2/SDK 7.
Download semua material, dan copykan semua file-file tersebut di folder drawable pada proyek Android kalian. Untuk file background, kalian akan mendapatkan sebuah gambar bernama mainstream.png, ubahlah menjadi background.png terlebih dahulu. Setelah itu, klik kanan pada folder drawable, dan buat sebuah file XML baru bernama selector.xml. Isikan kode berikut :
1
2
3
4
5
6
7
8
9
10
| <!--?xml version="1.0" encoding="utf-8"?--> <? xml version = "1.0" encoding = "utf-8" ?> < item android:state_pressed = "true" android:drawable = "@drawable/button_press" /> <!-- pressed --> < item android:state_focused = "true" android:drawable = "@drawable/button_hov" /> <!-- focused --> < item android:drawable = "@drawable/button_norm" /> <!-- default --> </ selector > |
main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <? xml version = "1.0" encoding = "utf-8" ?> android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:orientation = "horizontal" android:background = "@drawable/background" android:padding = "35dip" > < LinearLayout android:orientation = "vertical" android:layout_height = "wrap_content" android:layout_width = "fill_parent" android:layout_gravity = "center" > < ImageButton android:layout_marginTop = "285dip" android:id = "@+id/explore_button" android:layout_width = "wrap_content" android:layout_height = "match_parent" android:background = "@drawable/selector" android:layout_gravity = "center" /> </ LinearLayout > </ LinearLayout > |
That’s all! Kita hanya perlu mengedit file xml-nya saja karena yang kita perlukan hanyalah tampilan. File main activity biarkan saja seperti apa adanya, tidak perlu dirubah. Inti pada perubahan state ada di bagian layout imagebutton, dimana pada background tombol, kita set ke file selector.xml yang telah kita buat.
android:background="@drawable/selector"
Nantinya file selector.xml lah yang akan mengerjakan semuanya. Mungkin kalian bertanya, kok bisa file XML menjadi background? Bukankah background itu biasanya gambar… Tentu saja bisa, Android tidak memandang ekstensi dari file, asalkan file tersebut masuk ke dalam kategori @drawable, maka file tersebut akan dianggap sebagai file layout. Namun tentu saja tidak sembarang file bisa dimasukkan ke dalam kategori drawable. Kita tetap harus menyesuaikan.
Setelah itu, coba jalankan aplikasimu. Dan kamu akan mendapatkan tampilan yang menarik. Silahkan juga bereksperimen dengan kreativitas kalian untuk mendapatkan desain yang sesuai dengan idealisme masing-masing. Bye!
Post a Comment