Membuat Custom Button Pada Android
Membuat Custom Button Pada Android
com
&alah %atu hal 'ang men'enangkan dalam membuat %ebuah a$lika%i Android adalah melakukan ku%tomi%a%i $ada tam$ilan di la'ar. Dengan #ara ini $engembang da$at membuat de%ain ha%il kar'an'a 'ang unik dan kreatif dari$ada %ekedar tam$ilan %tandar 'ang membo%ankan. Ada ban'ak %ekali bagian dari tam$ilan a$lika%i Android 'ang bi%a diku%tom mulai dari launcher icon, menu, tab, dialog, list view dan %ebagain'a. Pada artikel kali ini akan dijela%kan teknik untuk mengku%tom tombol atau button $ada Android dengan menggunakan (arna atau gambar buatan %endiri %ehingga tam$ilann'a menjadi jauh lebih menarik dari$ada tombol 'ang bia%a.
Mempersiapkan Gambar
)angkah $ertama adalah mem$er%ia$kan gambar untuk #u%tom button ter%ebut. *ambar 'ang $erlu dibuat untuk %ebuah button haru% berjumlah tiga untuk me(akili kondi%i normal! menda$atkan fo#u% dan %aat ia tertekan. &ebagai #ontoh berikut ini di$erlihatkan tiga buah gambar 'ang berbeda namun dengan ukuran 'ang %ama untuk me(akili tiga kondi%i ter%ebut.
CATATAN: Tidak ada aturan 'ang baku mengenai ukuran %ebuah #u%tom button! namun %ebagai a#uan ukuran tinggi %ebuah %tandard button $ada la'ar berkera$atan menengah +medium density screen, atau MDP- adalah %ekitar 32 px. &ilakan menggunakan ukuran ini %ebagai a#uan %aat membuat %ebuah gambar agar #u%tom button tidak terlalu be%ar atau terlalu ke#il.
www.tobuku.com
Membuat Program
&etelah ketiga gambar %ele%ai dibuat! %ekarang %aatn'a untuk menuli% %ebuah $rogram. Program %ederhana 'ang akan dibuat berikut ini akan menam$ilkan %ebuah tombol dengan gambar 'ang telah di$er%ia$kan %ebelumn'a. 1. .alankan Eclipse dan buat %ebuah Android Project baru.
2. Dengan menggunakan /indo(% "0$lorer! #ari folder res\drawable-mdpi di dalam folder $rojek ter%ebut kemudian #o$'1kan ketiga file gambar ke dalam folder ini. )akukan hal 'ang %ama untuk dua folder lainn'a: res\drawable-ldpi dan res\drawablehdpi. )DP- me(akili la'ar berkera$atan rendah %edangkan 2DP- me(akili la'ar berkera$atan tinggi. *ambar 'ang %emula dibuat untuk MDP- bi%a %aja digunakan untuk )DP- dan 2DP-! namun idealn'a ma%ing1ma%ing la'ar ini memiliki gambar1gambar dengan ukuran 'ang di%e%uaikan.
www.tobuku.com
CATATAN: &ebagai a#uan! ukuran gambar 2DP- adalah !" kali ukuran gambar MDP-3 %edangkan ukuran gambar )DP- adalah #!$" %ali ukuran gambar MDP-. &'P( )medi*m densit+ screen, P 4 $anjang ) 4 lebar -'P( )low densit+ screen, 0.56 7 P 0.56 7 ) .'P( )hi/h densit+ screen, 1.6 7 P 1.6 7 )
. 8uat %ebuah file 9M) untuk ditem$atkan di dalam folder drawable-mdpi dan beri nama %ebagai android0b*tton!xml.
www.tobuku.com
File 9M) ini mengatur gambar1gambar 'ang akan ditam$ilan $ada tombol %e%uai dengan tiga kondi%i 'ang ber%angkutan. :. &alin file 9M) di ata% ke dalam folder res\drawable-ldpi dan res\drawable-hdpi.
Perhatikan bari% <android:ba#kground4=>dra(able?android@button=! dimana tam$ilan tombol akan merujuk ke file android@button.0ml 'ang mengatur gambar1gambar 'ang akan ditam$ilkan.
www.tobuku.com
A. 8uka file &ainActi1it+!ja1a dan tambahkan event onClic% 'ang menangani ak%i $enekanan tombol. &aat tombol ditekan! $rogram akan menam$ilkan %ebuah kotak $e%an bertuli%kan <8ee$ 8o$B.
package net.houseoflife.custombutton; import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.Toast;
public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button button = (Button) findViewById(R.id.mybutton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on clicks Toast.makeText(MainActivity.this, "Beep Bop", Toast.LENGTH_SHORT).show(); } }); } }
www.tobuku.com 2al 'ang $erlu di$erhatikan %aat mende%ain %ebuah tombol adalah kemungkinan tombol ini meregang oleh karena kondi%i tertentu. Tombol haru% mam$u mem$ertahakan bentukn'a agar teta$ bagu% (alau$un $anjang atau lebarn'a ditarik memanjang. Cntuk melihat bagaimana bentuk #u%tom button %aat ia diregangkan! %ilakan ikuti langkah berikut ini. 1. 8uka file main!xml dan ubah bagian la+o*t0width dari #u%tom button ter%ebut dari (ra$@#ontent menjadi 2ill0parent.
... <Button android:id="@+id/mybutton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dp" android:background="@drawable/android_button" /> ...
2. &im$an $erubahan dan jalankan kembali. Tam$ilann'a akan tam$ak %e$erti berikut ini.
.elek %ekali! bukanD -ni artin'a #u%tom button ter%ebut belum dide%ain dengan baik. 2al %e$erti ini %angat mungkin terjadi %ehingga $erlu dilakukan #ara untuk menanggulangin'a.
www.tobuku.com
2aru% diu$a'akan agar ada bagian 'ang bi%a di$ertahankan tidak berubah bentukn'a %aat ia diregang. Pada #ontoh ini area 'ang di(arnai gela$ adalah bagian 'ang boleh diregangkan %edangkan bagian 'ang di tengah adalah area 'ang tidak boleh berubah.
Dengan demikian %aat gambar ini ditarik memanjang! bagian 'ang flek%ibel akan berubah bentukn'a mengikuti ukuran 'ang diinginkan namun bagian 'ang %tati% akan teta$ bentukn'a.
Teknik inilah 'ang haru% ditera$kan $ada gambar button ter%ebut agar ada bagian 'ang bi%a teta$ di$ertahankan bentukn'a $ada %aat ukuran $anjang atau lebarn'a berubah %ehingga button akan teta$ tam$ak bagu% dalam berbagai ukuran. SDK Android telah men'ediakan %ebuah $rogram 'ang membantu $rogrammer untuk mengatur bagian1bagian gambar 'ang bi%a diregangkan. Program ini bernama 'raw 3-patch 'ang memungkinkan $enggunan'a membuat grafik NinePatch dengan mudah.
www.tobuku.com 1. Dengan /indo(% "0$lorer! buka folder tools di dalam folder in%tala%i &D; Android. .alankan file bernama draw3patch!bat dan tunggu bebera$a %aat %am$ai $rogram tam$il.
2. Dengan /indo(% "0$lorer! da$atkan %alah %atu dari tiga gambar #u%tom button tadi kemudian klik dan ge%er ke dalam (indo( <Dra( G1$at#hB ter%ebut.
&ilakan mengge%er1ge%ert slider Patch scale untuk melihat efek dari $eregangan terhada$ gambar ter%ebut.
www.tobuku.com . ;lik o$%i 4how patches! kemudian dengan menggunakan $enunjuk mou%e klik $ada te$i1te$i gambar untuk menandai bagian 'ang boleh direggangkan. Area 'ang tidak ditandai adalah bagian 'ang tidak berubah. )ihat preview1n'a $ada (indo( di bagian kanan bagaimana efek dari $engaturan ini akan membuat gambar jauh lebih baik. &-lakan bandingkan dengan preview %ebelumn'a.
:. &im$an ha%il $engaturan ini dengan nama file 'ang baru. "k%ten%i nama file akan ditambah menjadi 3!PNG. &ebagai #ontoh jika %emula nama file1n'a bernama android@normal.$ng maka %elanjutn'a ia akan menjadi android@normal.G.$ng. 6. &ilakan lakukan dengan file1file 'ang lain. A. &alin file1file 3!PNG ke dalam folder1folder re%Hdra(able1ld$i! re%Hdra(able1md$i dan re%Hdra(able1hd$i %e$erti %emula dan ha$u% +atau $indahkan, file1file .PI* %ebelumn'a dari folder ter%ebut.
CATATAN: Pa%tikan file PI* dan G.PI* untuk gambar 'ang %ama tidak berada di dalam folder dra(able karena hal itu akan mengakibatkan error %aat dijalankan.
www.tobuku.com
&aat $rogram dijalankan kembali! kali ini #u%tom button akan tam$il lebih baik.
10