Menu Dialog dan Gesture pada Android Studio

Menu Dialog dan Gesture
Sebuah dialog adalah sebuah layar kecil yang memberikan ruang ke user untuk membuat sebuah keputusan atau memasukkan informasi tambahan. Sebuah dialog tidak memenuhi layar dan normalnya digunakan untuk memulai event yang memerlukan user untuk melakukan aksi sebelum event tersebut diproses.
Istilah "gesture" digunakan untuk menentukan urutan interaksi yang berdekatan antara layar sentuh dan pengguna. Gesture yang khas dimulai pada titik dimana layar pertama disentuh dan berakhir ketika jari terakhir atau alat penunjuk meninggalkan permukaan layar. Ketika dimanfaatkan dengan benar, gerakan dapat diimplementasikan sebagai bentuk komunikasi antara pengguna dan aplikasi. Menggesekkan gerakan untuk mengubah halaman e-book, atau gerakan ‘pinche’ melibatkan dua sentuhan untuk memperbesar atau memperkecil suatu gambar adalah contoh utama dari cara di mana gerakan dapat digunakan untuk berinteraksi dengan aplikasi.
Android SDK menyediakan mekanisme untuk mendeteksi baik ‘gesture’ umum dan tertentu dalam aplikasi. Gesture umum melibatkan interaksi seperti tap, double tap, long press atau gerakan menggesekkan, baik horizontal atau arah vertikal (referensi ke dalam Android nomenklatur sebagai ‘fling’).
Disini kita akan mengeksplorasi penggunaan kelas Android GestureDetector untuk mendeteksi gesture umum dilakukan pada layar perangkat Android.
1. Implementasi Common Gesture Detection
Ketika user berinteraksi dengan tampilan sebuah perangkat andoird, onTouchEvent() method dari aplikasi yang sedang aktif dipanggil oleh sistem dan MotionEvent dilewatkan yang berisi data mengenai kontak user dengan layar. Data ini bisa diinterpretasikan untuk mengidentifikasi apakah gerakan pada layar cocok dengan sebuah gesture umum atau tidak seperti tap atau geser. Hal ini bisa dilakukan dengan kerja pemrograman sedikit saja dengan memnggunakan class Android GestureDetectorCompat. Class ini dirancang secara khusus untuk menerima informasi gerakan dari aplikasi dan untuk mentriger method class berdasarkan pada tipe gesture umum, bila ada, yang terdeteksi.
Langkah dasar dalam mendeteksi common gestures adalah sebagai berikut :
Deklarasi sebuah class yang mengimplementasikan interface

GestureDetector.OnGestureListener yang meliputi pemanggilan method onFling(),
onDown(), onScroll(), onShowPress, onSingleTapUp() and onLongPress() yang diperlukan. Pada kejadian dimana diperlukan deteksi double tap gesture, class juga harus mengimplementasikan interface GestureDetector.OnDoubleTapListener dan meliputi
method onDobleTap() yang berhubungan.
Pembuatan sebuah instance class Android GestureDetectorCompat, yang melewati sebuah instance dari class tersebut dibuat di langkah 1 sebagai sebuah argumen.
Panggilan optional kepada method setOnDoubleTapListener() dari instance
GestureDetectorCompat untuk memungkinkan deteksi double tap bila diperlukan.
Implementasi pemanggilan method onTouchEvent() pada akhir activity yang secara berurutan barus memanggil kejadian gerakan dari instance GestureDetectorCompat, yang melewatkan kejadian gerakan yang benar sebagai sebuah argumen ke method.
Begitu diimplementasikan, hasilnya adalah serangkaian method di dalam kode aplikasi yang akan dapat dipanggil pada saat sebuah gesture dari sebuah tipe tertentu terdeteksi. Kode di dalam method ini bisa diaplikasikan untuk melakukan berbagai tugas yang harus dilakukan sebagai respon terhadap gesture yang ada.
C. PRAKTIK
1. Kita akan membuat event untuk menu dan dialog.
2. Buat project baru. Kemudian buat sebuah activity dengan nama MainActivity. Buat pada layoutnya menjadi seperti berikut. (perhatikan paket yang anda buat, sesuaikan)
<? xml version= "1.0" encoding= "utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns: app = "http://schemas.android.com/apk/res-auto"
xmlns: tools = "http://schemas.android.com/tools"
android :layout_width= "match_parent"
android :layout_height= "match_parent"
android :paddingBottom= "@dimen/activity_vertical_margin"
android :paddingLeft= "@dimen/activity_horizontal_margin"
android :paddingRight= "@dimen/activity_horizontal_margin"
android :paddingTop= "@dimen/activity_vertical_margin"
app :layout_behavior= "@string/appbar_scrolling_view_behavior"
tools :context= "com.example.lucianugraheni.menudialog.MainActivity"
tools :showIn= "@layout/activity_main"
android :orientation= "vertical" >
<Button
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "Tekan"
android :layout_gravity= "center"
android :id= "@+id/btnTekan" />
<TextView
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :layout_gravity= "center"
android :layout_marginTop= "@dimen/fab_margin"
android :text= "Hasil"
android :textAppearance= "?android:attr/textAppearanceLarge"
android :id= "@+id/text1" />
</LinearLayout>

3. Dan tambahkan pada file MainActivity.java sehingga menjadi sebagai berikut
package com.example.lucianugraheni.menudialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity { Button btn;
TextView teks1;
@Override
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main);
final String[] option = {"Tambah","Tampil", "Hapus"}; teks1 = (TextView) findViewById(R.id.text1); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.select_dialog_item,option);
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle( "Select Option");
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
if (i==0){
teks1 .setText("Tambah dipilih");
}else
if (i==1){
teks1 .setText("Tampil dipilih");
}else
if (i==2){
teks1 .setText("Hapus dipilih");
}else
teks1 .setText("Tidak ada yang dipilih");
}
});
final AlertDialog a = builder.create();
btn = (Button) findViewById(R.id.btnTekan);
btn .setOnClickListener(new View.OnClickListener(){ public void onClick(View v){
a.show();
}
});
}
........................................
}
4. Coba jalankan dan amati hasilnya. Jelaskan jalannya program.
5. Buat project baru. Buatlah dalam file XML nya sebuah komponen TextView, dengan layout seperti berikut
<TextView
android :layout_width= "wrap_content"
android :layout_height= "wrap_content"
android :text= "Gerakkan mouse..."
android :textAppearance= "?android:attr/textAppearanceLarge"
android :id= "@+id/text1" />

6. Dan dalam file javanya tambahkan seperti berikut.
package com.example.lucianugraheni.gesturenew; import android.os.Bundle;
import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar;
import android.support.v4.view.GestureDetectorCompat; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener,
GestureDetector.OnDoubleTapListener{
private TextView gestureText;
private GestureDetectorCompat gDetector;
@Override
protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main);
.............................
gestureText =
(TextView)findViewById(R.id.text1);
this .gDetector = new GestureDetectorCompat(this,this);
gDetector .setOnDoubleTapListener(this);
}
@Override
public boolean onDown(MotionEvent event) { gestureText.setText ("onDown"); return true;
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
gestureText .setText("onFling");
return true ;
}
@Override
public void onLongPress(MotionEvent event) { gestureText.setText("onLongPress");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
gestureText .setText("onScroll");
return true ;
}
@Override
public void onShowPress(MotionEvent event) { gestureText.setText("onShowPress");
}
@Override
public boolean onSingleTapUp(MotionEvent event) {

gestureText .setText("onSingleTapUp");
return true ;
}
@Override
public boolean onDoubleTap(MotionEvent event) { gestureText.setText("onDoubleTap"); return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent event) { gestureText.setText("onDoubleTapEvent"); return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent event) { gestureText.setText("onSingleTapConfirmed"); return true;
}
@Override
public boolean onTouchEvent(MotionEvent event) { this. gDetector.onTouchEvent(event);
return super .onTouchEvent(event);
}
..............................
}

0 Response to "Menu Dialog dan Gesture pada Android Studio"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel