Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android

Membuat Keyboard Kustom di Android

Difficulty:BeginnerLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Hasannudin Amin (you can also view the original English article)

Final product image
What You'll Be Creating

Sebagian besar perangkat Android tidak memiliki keyboard fisik. Sebagai gantinya, mereka mengandalkan soft keyboard atau virtual untuk menerima masukan pengguna. Jika Anda menyukai personalisasi Android, mengetahui bagaimana membuat kustomisasi, soft keyboard bisa membawa hobi Anda ke tingkat yang baru.

Dengan menggunakan Android SDK, Anda dapat dengan cepat membuat soft keyboard dengan beberapa baris kode yang mengejutkan, karena SDK menangani banyak tugas tingkat rendah, seperti mengenali kunci sentuhan, menarik keyboard, dan menjalin hubungan antara keyboard dan bidang masukan.

Dalam tutorial ini, Anda akan belajar cara membuat soft keyboard yang berfungsi penuh yang bisa berfungsi sebagai keyboard default perangkat Android Anda.

1. Prasyarat

Anda akan memerlukan Eclipse ADT Bundle yang terinstal. Anda bisa mendownloadnya dari situs Android Developer.

2. Membuat Proyek Baru

Jalankan Eclipse dan buat aplikasi Android baru. Sebut saja aplikasi ini, SimpleKeyboard. Pastikan Anda memilih nama paket yang unik. Tetapkan SDK minimum yang diperlukan ke Android 2.2 dan tetapkan target SDK ke Android 4.4.

Aplikasi ini tidak akan memiliki aktivitas jadi batalkan pilihan Create Activity dan klik Finish.

3. Sunting Manifest

Soft Keyboard dianggap sebagai Input Method Editor (IME) oleh sistem operasi Android. IME dinyatakan sebagai Service di AndroidManifest.xml yang menggunakan izin BIND_INPUT_METHOD, dan menanggapi aksi android.view.InputMethod.

Tambahkan baris berikut ke tag application dari manifest:

4. Membuat method.xml

Tag service di file manifest berisi tag meta-data yang merujuk ke file XML bernama method.xml. Tanpa file ini, sistem operasi Android tidak akan mengenali Service kita sebagai layanan IME yang valid. File berisi rincian tentang metode input dan subtipenya. Untuk keyboard kita, kita mendefinisikan satu subtipe untuk lokal en_US. Buat direktori res/xml jika tidak ada, dan tambahkan file method.xml padanya. Isi file harus:

5. Menyunting strings.xml

String yang digunakan aplikasi ini didefinisikan dalam file res /values​/strings.xml. Kita membutuhkan tiga string:

  • nama apliaksi
  • label IME
  • label subtipe IME

Perbarui strings.xml Anda sehingga memiliki isi seperti berikut:

6. Tentukan Layout Keyboard

Layout keyboard kita hanya berisi KeyboardView. Atribut layout_alignParentBottom disetel ke true sehingga keyboard muncul di bagian bawah layar.

Buat file bernama res/layout/keyboard.xml dan ganti isinya dengan yang berikut ini:

keyPreviewLayout adalah layout short-lived pop-up yang muncul setiap kali tombol pada keyboard ditekan. Ini berisi TextView tunggal. Buat file bernama res/layout/preview.xml dan tambahkan berikut ini:

6. Tentukan Tombol Keyboard

Rincian tombol keyboard dan posisinya ditentukan dalam file XML. Setiap tombol memiliki atribut berikut:

  • keyLabel: Atribut ini berisi teks yang ditampilkan pada tombol.
  • codes: Atribut ini berisi nilai unicode dari karakter yang diwakili oleh tombol.

Misalnya, untuk menentukan kunci untuk huruf A, atribut codes harus memiliki nilai 97 dan atribut keyLabel harus ditetapkan ke A.

Jika lebih dari satu kode dikaitkan dengan sebuah tombol, maka karakter yang ditunjukkan oleh tombol akan bergantung pada jumlah ketukan yang diterima tombolnya. Misalnya, jika kunci memiliki kode 63, 33, dan 58:

  • Ketuk sekali pada tombol menghasilkan karakter ?
  • Dua ketukan berurutan menghasilkan karakter !
  • tiga ketukan berurutan menghasilkan karakter :

Tombol juga bisa memiliki beberapa atribut opsional:

  • keyEdgeFlags: Atribut ini bisa mengambil nilai left atau right. Atribut ini biasanya ditambahkan ke tombol paling kiri dan paling kanan dalam suatu baris.
  • keyWidth: Atribut ini mendefinisikan lebar sebuah tombol. Ini biasanya didefinisikan sebagai nilai persentase.
  • isRepeatable: Jika atribut ini disetel ke true, lama menekan tombol akan mengulangi tindakan beberapa kali kunci. Hal ini biasanya disetel ke true untuk tombol delete dan spacebar.

Tombol keyboard dikelompokkan sebagai baris. Ini adalah praktik yang baik untuk membatasi jumlah tombol secara berturut-turut hingga maksimum sepuluh, dengan setiap tombol memiliki lebar yang sama dengan 10% dari keyboard. Ketinggian tombol diatur ke 60dp dalam tutorial ini. Nilai ini bisa disesuaikan, namun nilai kurang dari 48dp tidak dianjurkan. Keyboard kita akan memiliki lima baris kunci.

Kita sekarang bisa teruskan dan mendesain keyboard. Buat file baru bernama res/xml/qwerty.xml dan ganti isinya dengan yang berikut ini:

Anda mungkin telah memperhatikan bahwa beberapa tombol memiliki nilai negatif untuk atribut codes. Nilai negatif sama dengan konstanta yang telah ditentukan di class Keyboard. Misalnya, nilai -5 sama dengan nilai Keyboard.KEYCODE_DELETE.

7. Membuat Class Service

Buat class Java baru dan menyebutnya SimpleIME.java. Class harus memperpanjang class InputMethodService dan menerapkan antarmuka OnKeyboardActionListener. Antarmuka OnKeyboardActionListener berisi metode yang disebut saat tombol soft keyboard diketuk atau ditekan.

Class SimpleIME harus memiliki tiga variabel anggota:

  • sebuah KeyboardView yang merujuk pada pandangan yang didefinisikan dalam layout
  • sebuah contoh Keyboard yang ditugaskan ke KeyboardView
  • boolean memberitahu kita jika caps lock diaktifkan.

Setelah mendeklarasikan variabel-variabel ini dan menambahkan metode antarmuka OnKeyboardActionListener, kelas SimpleIME akan terlihat seperti ini:

Saat keyboard dibuat, metode onCreateInputView dipanggil. Semua variabel anggota Service dapat diinisialisasi di sini. Perbarui implementasi metode onCreateInputView seperti yang ditunjukkan di bawah ini:

Selanjutnya, kita membuat metode yang memutar suara saat tombol ditekan. Kita menggunakan class AudioManager untuk memutar suara. Android SDK mencakup beberapa efek suara default untuk penekanan tombol dan digunakan dalam metode playClick.

Akhirnya, perbarui metode onKey sehingga aplikasi keyboard kita dapat berkomunikasi dengan bidang masukan (biasanya tampilan EditText) dari aplikasi lain.

Metode getCurrentInputConnection digunakan untuk mendapatkan koneksi ke bidang input aplikasi lain. Begitu kita memiliki koneksi, kita bisa menggunakan metode berikut:

  • commitText untuk menambahkan satu atau beberapa karakter ke kolom input
  • deleteSurroundingText untuk menghapus satu atau lebih karakter input
  • sendKeyEvent untuk mengirim acara, seperti KEYCODE_ENTER, ke aplikasi eksternal

Setiap kali pengguna menekan tombol pada soft keyboard, metode onKey dipanggil dengan nilai kode unicode sebagai salah satu parameternya. Berdasarkan nilai ini, keyboard melakukan salah satu tindakan berikut:

  • Jika kode itu KEYCODE_DELETE, satu karakter di sebelah kiri kursor akan dihapus menggunakan metode deleteSurroundingText.
  • Jika kode itu KEYCODE_DONE, event tombol KEYCODE_ENTER akan dikeluarkan.
  • Jika kode ini KEYCODE_SHIFT, nilai variabel caps berubah dan keadaan pergeseran keyboard diperbarui menggunakan metode setShifted. Keyboard perlu digambar ulang saat keadaan berubah sehingga label tombol diperbarui. Metode invalidateAllKeys digunakan untuk menggambar ulang semua tombol.
  • Untuk semua kode lainnya, kodenya diubah menjadi karakter dan dikirim ke kolom input. Jika kode tersebut mewakili huruf alfabet dan variabel caps disetel ke true, maka karakter tersebut akan dikonversi menjadi huruf besar.

Perbarui metode onKey sehingga terlihat seperti ini:

8. Menguji Keyboard

Soft keyboard sekarang siap untuk diuji. Kompilasi dan jalankan di perangkat Android. Aplikasi ini tidak memiliki Activity, yang berarti tidak akan muncul di launcher. Untuk menggunakannya, pertama-tama harus diaktifkan di Settings perangkat.

Setelah mengaktifkan Simple IME, buka aplikasi apa pun yang memungkinkan masukan teks (misalnya, aplikasi perpesanan) dan klik salah satu bidang masukannya. Anda harus melihat ikon keyboard muncul di area notifikasi. Bergantung pada perangkat Anda, Anda dapat mengklik ikon itu atau menyeret bilah pemberitahuan ke bawah dan memilih Simple IME sebagai metode masukan. Anda sekarang harus bisa mengetik menggunakan keyboard baru Anda.

Kesimpulan

Dalam tutorial ini, Anda telah belajar bagaimana membuat aplikasi keyboard kustom dari awal. Untuk mengubah tampilan dan nuansa keyboard Anda, yang harus Anda lakukan adalah menambahkan styling ekstra ke file res/layout/keyboard.xml dan res/layout/preview.xml. Untuk mengubah posisi tombol, perbarui file res/xml/qwerty.xml. Untuk menambahkan lebih banyak fitur ke keyboard Anda, lihat dokumentasi pengembang.


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.