• Tidak ada hasil yang ditemukan

BAB 5 – More Views Pemrograman Perangkat Mobile Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer Universitas Brawijaya

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB 5 – More Views Pemrograman Perangkat Mobile Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer Universitas Brawijaya"

Copied!
26
0
0

Teks penuh

(1)

BAB 5 – More Views

Pemrograman Perangkat Mobile Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer Universitas Brawijaya Modul Bahan Ajar UBDistanceLearning

Pemrograman Perangkat Mobile

Eriq Muhammad Adams J, ST., M.Kom; Widhy Hayuhardhika, S.Kom

(2)

Pendahuluan

Padababsebelumnyatelahdijelaskanbeberapapenggunaan widget-widget/view-view yang sederhana.

Padababiniakandijelaskanlebihlanjutmengenai view-view yang lebihkompleks.

TujuanInstruksionalKhusus

Perancanganmodulpadababinibertujuan agar mahasiswamampu : 1. Memahamijenis-jenis view yang lain.

2. Membuataplikasimenggunakan view.

DaftarMateri

1. PENGENALAN 1.1 Widgets/View 1.2 JenisView 2. MORE VIEWS

2.1 Project 1 : TimePickerView 2.2 Project 2 : DatePickerView 2.3 Project 3 : GalleryView

2.4 Project 4 : ImageSwitcherView 2.5 Project 5 : Analog/Digital Clock 2.6 Project 6 : Context/Option Menu 3. SOAL DAN PROJECT

(3)

1. PENGENALAN

1.1 Widgets/View

Android Widgets merupakan komponen-komponen yang disediakan Android SDK untuk membangun user interface pada aplikasi Android.

1.2 JenisView

Android Widgets merupakan komponen-komponen yang disediakan Android SDK untuk membangun user interface pada aplikasi Android.

Jenis View

TimePicker view

View untukmenampilkandanmensettingwaktu (jam, menit, detik)

DatePicker view

View untukmenampilkandanmensettingtanggal (hari, bulan, tahun)

Gallery view

View untukmenampilkangambardalambentukgaleri.

ImageSwitcher view

View untukmenampilkangambardalambentuk slide show.

Context Menu

View untukmenampilkan menu dengan touch input.

Options Menu

View untukmenampilkan menu denganmenekantombol di smartphone.

AnalogClock

View untukmenampilkan jam analog.

DigitalClock

View untukmenampilkan jam digital.

2. MORE VIEWS

2.1 Project 1 : TimePicker View

Pada program inikitaakanmerancangaplikasi Android yang memperbolehkan user untukseleksiwaktudalamsehariyaitu 24 jam (pm/am).

Buat project android dengan ketentuan sebagai berikut :

 Project name : TimePickerView

 Build Target : Android 2.1-update1

 Application Name : timepicker

 Package name : id.ac.ub.pttik.timepicker

 Activity : TimePickerActivity

 Min SDK : 7

(4)

TimePickerActivity.java

packageid.ac.ub.pttik.timepicker;

importandroid.app.Activity;

importandroid.os.Bundle;

publicclassTimePickerActivityextends Activity {

@Override

protectedvoidonCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.timepicker);

} }

timepicker.xml

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TimePickerandroid:layout_width="wrap_content"

android:layout_height="wrap_content"/>

</LinearLayout>

Apabila aplikasi timepicker dijalankan, tampilannya sepertipadaGambar 2.1.

(5)

Gambar 2.1 Tampilan Project 1 : TimePickerView.

Click tombol tambah atau kurang dan perhatikan bahwa nilai jam atau menit otomatis akan berubah.

TimePicker sebenarnya dapat ditampilkan dalam bentuk dialog box seperti kode TimePickerActivity.java yang telah dimodifikasi berikut ini :

TimePickerActivity.java (modifikasi) packageid.ac.ub.pttik.timepicker;

importandroid.app.Activity;

importandroid.app.Dialog;

importandroid.app.TimePickerDialog;

importandroid.os.Bundle;

importandroid.widget.TimePicker;

importandroid.widget.Toast;

publicclassTimePickerActivityextends Activity { inthour, minute;

staticfinalintTIME_DIALOG_ID = 0;

(6)

@Override

protectedvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.datetimepicker);

showDialog(TIME_DIALOG_ID);

}

@Override

protected Dialog onCreateDialog(int id) { switch (id) {

caseTIME_DIALOG_ID:

returnnewTimePickerDialog(this, mTimeSetListener, hour, minute, false);

}

returnnull;

}

privateTimePickerDialog.OnTimeSetListenermTimeSetListener = newTimePickerDialog.OnTimeSetListener() {

publicvoidonTimeSet(TimePicker view, inthourOfDay, intminuteOfHour) { hour = hourOfDay;

minute = minuteOfHour;

Toast.makeText(getBaseContext(),

"You have selected : " + hour + ":" + minute,

Toast.LENGTH_SHORT).show();

} };

}

Running project ulangsehinggaakanmenghasilkansepertipadaGambar 2.2.

(7)

Gambar 2.2 Tampilan Project 1 : TimePickerView yang telah dimodifikasi.

2.2 Project 2 : DatePicker View

Pada program inikitaakanmerancangaplikasi Android yang memperbolehkan user untukmelakukanseleksitanggal, bulan, dantahun.

Buat project android dengan ketentuan sebagai berikut :

 Project name : DatePickerView

 Build Target : Android 2.1-update1

 Application Name : datepicker

 Package name : id.ac.ub.pttik.datepicker

 Activity : DatePickerActivity

 Min SDK : 7

DatePickerActivity.java

packageid.ac.ub.pttik.datepicker

importandroid.app.Activity;

importandroid.os.Bundle;

publicclassDatePickerActivityextends Activity { /** Called when the activity is first created. */

(8)

@Override

publicvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.datepicker);

} }

datepicker.xml

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="fill_parent"

android:layout_height="fill_parent">

<DatePickerandroid:layout_width="wrap_content"

android:layout_height="wrap_content"/>

</LinearLayout>

Apabila aplikasi datepickerdijalankan, tampilannya sepertipadaGambar 2.3.

Gambar 2.3 Tampilan Project 2 : DatePickerView.

(9)

2.3 Project 3 : GalleryView

Pada program inikitaakanmerancangaplikasi Android yang menampilkan item-item dalambentuk image.

Buat project android dengan ketentuan sebagai berikut :

 Project name : GalleryView

 Build Target : Android 2.1-update1

 Application Name : gallery

 Package name : id.ac.ub.pttik.gallery

 Activity : GalleryActivity

 Min SDK : 7

Sebelumandatuliskode program berikutsalin file bandung1.jpg, bandung2.jpg, bandung3.jpg, bandung4.jpg, bandung5.jpg, bandung6.jpg, bandung7.jpg kedalamdirektorires/drawable.

GalleryActivity.java

packageid.ac.ub.pttik.gallery;

importandroid.app.Activity;

importandroid.content.Context;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.AdapterView;

importandroid.widget.AdapterView.OnItemClickListener;

importandroid.widget.BaseAdapter;

importandroid.widget.Gallery;

importandroid.widget.ImageView;

importandroid.widget.Toast;

publicclassGalleryActivityextends Activity

{

//---the images to display--- Integer[] imageIDs = { R.drawable.bandung1,

(10)

R.drawable.bandung2, R.drawable.bandung3, R.drawable.bandung4, R.drawable.bandung5, R.drawable.bandung6,

R.drawable.bandung7, };

@Override

publicvoidonCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.displayview);

Gallery gallery = (Gallery) findViewById(R.id.gallery1);

gallery.setAdapter(newImageAdapter(this));

gallery.setOnItemClickListener(newOnItemClickListener() {

publicvoidonItemClick(AdapterView parent,

View v, int position, long id) {

Toast.makeText(getBaseContext(),

"pic" + (position + 1) + " selected",

Toast.LENGTH_SHORT).show();

} });

}

publicclassImageAdapterextendsBaseAdapter {

(11)

private Context context;

privateintitemBackground;

publicImageAdapter(Context c)

{ context = c;

//---setting the style---

}

//---returns the number of images--- publicintgetCount() {

returnimageIDs.length;

}

//---returns the ID of an item--- public Object getItem(int position) { return position;

}

publiclonggetItemId(int position) { return position;

}

//---returns an ImageView view---

public View getView(int position, View convertView, ViewGroup parent) {

ImageViewimageView = newImageView(context);

imageView.setImageResource(imageIDs[position]);

imageView.setScaleType(ImageView.ScaleType.FIT_XY);

imageView.setLayoutParams(newGallery.LayoutParams(150, 120));

imageView.setBackgroundResource(itemBackground);

returnimageView;

} }

(12)

}

displayview.xml

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextViewandroid:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="Images Kota Bandung"/>

<Galleryandroid:id="@+id/gallery1"android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

<ImageViewandroid:id="@+id/image1"android:layout_width="320px"

android:layout_height="250px"android:scaleType="fitXY"/>

</LinearLayout>

Apabila aplikasi galleryview dijalankan, tampilannyasepertipadaGambar 2.4.

Gambar 2.4 Tampilan Project 3 : GalleryView.

(13)

Ubahprosedur yang beradadalam method onItemClick()untuk image yang dipilihkedalamImageViewmenjadisepertiberikut :

onItemClick()

publicvoidonItemClick(AdapterView parent,

View v, int position, long id) {

ImageViewimageView = (ImageView) findViewById(R.id.image1);

imageView.setImageResource(imageIDs[position]);

}

Running project ulangsehinggaakanmenghasilkantampilansepertipadaGambar 2.5.

Gambar 2.5 Tampilan Project 3 : GalleryView yang telah dimodifikasi.

(14)

2.4 Project 4 : ImageSwitcher View

Pada program inikitaakanmerancangaplikasi Android yang menampilkangambarkotaBandung menggunakanImageSwitcher View.

Buat project android dengan ketentuan sebagai berikut :

 Project name : ImageSwitcherView

 Build Target : Android 2.1-update1

 Application Name : imageswitcher

 Package name : id.ac.ub.pttik.imageswitcher

 Activity : ImageSwitcherActivity

 Min SDK : 7

Sebelumandatuliskode program berikutsalin file bandung1.jpg, bandung2.jpg, bandung3.jpg, bandung4.jpg, bandung5.jpg, bandung6.jpg, bandung7.jpg kedalamdirektori res/drawable

ImageSwitcherActivity.java

packageid.ac.ub.pttik.imageswitcher;

importandroid.app.Activity;

importandroid.content.Context;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.view.animation.AnimationUtils;

importandroid.widget.AdapterView;

importandroid.widget.AdapterView.OnItemClickListener;

importandroid.widget.BaseAdapter;

importandroid.widget.Gallery;

importandroid.widget.Gallery.LayoutParams;

importandroid.widget.ImageSwitcher;

importandroid.widget.ImageView;

importandroid.widget.ViewSwitcher.ViewFactory;

publicclassImageSwitcherActivityextends Activity implementsViewFactory {

//---the images to display---

(15)

Integer[] imageIDs = { R.drawable.bandung1, R.drawable.bandung2, R.drawable.bandung3, R.drawable.bandung4, R.drawable.bandung5, R.drawable.bandung6, R.drawable.bandung7 };

privateImageSwitcherimageSwitcher;

@Override

publicvoidonCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.displayview);

imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher1);

imageSwitcher.setFactory(this);

imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,

android.R.anim.fade_in));

imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));

Gallery gallery = (Gallery) findViewById(R.id.gallery1);

gallery.setAdapter(newImageAdapter(this));

gallery.setOnItemClickListener(newOnItemClickListener() {

publicvoidonItemClick(AdapterView parent,

(16)

View v, int position, long id) {

imageSwitcher.setImageResource(imageIDs[position]);

} });

}

public View makeView()

{

ImageViewimageView = newImageView(this);

imageView.setBackgroundColor(0xFF000000);

imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);

imageView.setLayoutParams(new ImageSwitcher.LayoutParams(

LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

returnimageView;

}

publicclassImageAdapterextendsBaseAdapter

{

private Context context;

privateintitemBackground;

publicImageAdapter(Context c)

{

context = c;

}

//---returns the number of images--- publicintgetCount()

(17)

{

returnimageIDs.length;

}

//---returns the ID of an item--- public Object getItem(int position)

{

return position;

}

publiclonggetItemId(int position)

{

return position;

}

//---returns an ImageView view---

public View getView(int position, View convertView, ViewGroup parent)

{

ImageViewimageView = newImageView(context);

imageView.setImageResource(imageIDs[position]);

imageView.setScaleType(ImageView.ScaleType.FIT_XY);

imageView.setLayoutParams(newGallery.LayoutParams(150, 120));

imageView.setBackgroundResource(itemBackground);

returnimageView;

} } }

displayview.xml

<?xmlversion="1.0"encoding="utf-8"?>

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"

(18)

android:orientation="vertical"android:layout_width="fill_parent"

android:layout_height="fill_parent"android:background="#ff000000">

<ImageSwitcherandroid:id="@+id/switcher1"

android:layout_width="fill_parent"android:layout_height="fill_parent"

android:layout_alignParentLeft="true"android:layout_alignParentRight="true"

android:layout_alignParentBottom="true"/>

<Galleryandroid:id="@+id/gallery1"android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

</RelativeLayout>

string.xml

<?xmlversion="1.0"encoding="utf-8"?>

<resources>

<stringname="hello">Hello World, gallery!</string>

<stringname="app_name">ImageSwitcher</string>

</resources>

Apabila aplikasi imageswitcher dijalankan, tampilannya sepertipadaGambar 2.6.

Gambar 2.6 Tampilan Project 4 : ImageSwitcher.

(19)

2.5 Project 5 : Analog/Digital Clock

Pada program inikitaakanmerancangaplikasi Android yang menampilkan jam analog dan digital.

Buat project android dengan ketentuan sebagai berikut :

 Project name : AnalogDigitalClock

 Build Target : Android 2.1-update1

 Application Name : analogdigital

 Package name : id.ac.ub.pttik.analogdigital

 Activity : AnalogDigitalActivity

 Min SDK : 7

analogdigital.java

packageid.ac.ub.pttik.analogdigital;

importandroid.app.Activity;

importandroid.os.Bundle;

publicclassAnalogDigitalActivityextends Activity { /** Called when the activity is first created. */

@Override

publicvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main);

} }

main.xml main.xml

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="fill_parent"

android:layout_height="fill_parent">

<AnalogClockandroid:id="@+id/clock1"android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<DigitalClockandroid:id="@+id/clock2"

(20)

android:layout_width="wrap_content"android:layout_height="wrap_content"/>

</LinearLayout>

Apabila aplikasi analogdigital dijalankan, tampilannya sepertipadaGambar 2.7.

Gambar 2.7 Tampilan Project 5 : Analog/Digital Clock.

2.6 Project 6 : Context/Option Menu

Pada program inikitaakanmerancangaplikasi Android yang menggunakan Context Menu dan Options Menu. Context Menu merupakan menu yang dipilihdenganmenekan touch-screen.Sedangkan Options Menu merupakan menu yang dipilihdenganmenekantombol Menu yang adapada Smartphone atau Tablet.

Buat project android dengan ketentuan sebagai berikut :

 Project name : MenuLayout

 Build Target : Android 2.1-update1

 Application Name : menulayout

 Package name : id.ac.ub.pttik.menulayout

 Activity : MenuLayoutActivity

 Min SDK : 7

MenuLayoutActivity.java

packageid.ac.ub.pttik.menulayout;

(21)

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.Menu;

importandroid.view.MenuItem;

importandroid.widget.Button;

importandroid.widget.Toast;

publicclassMenuLayoutActivityextends Activity {

@Override

publicvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.menu);

Button btn = (Button) findViewById(R.id.btn1);

btn.setOnCreateContextMenuListener(this);

}

privatevoidCreateMenu(Menu menu) {

menu.setQwertyMode(true);

MenuItem mnu1 = menu.add(0, 0, 0, "Item 1");

{

mnu1.setAlphabeticShortcut('a');

mnu1.setIcon(R.drawable.icon);

}

MenuItem mnu2 = menu.add(0, 1, 1, "Item 2");

{

mnu2.setAlphabeticShortcut('b');

mnu2.setIcon(R.drawable.icon);

}

MenuItem mnu3 = menu.add(0, 2, 2, "Item 3");

{

mnu3.setAlphabeticShortcut('c');

(22)

mnu3.setIcon(R.drawable.next);

}

MenuItem mnu4 = menu.add(0, 3, 3, "Item 4");

{

mnu4.setAlphabeticShortcut('d');

}

menu.add(0, 3, 3, "Item 5");

menu.add(0, 3, 3, "Item 6");

menu.add(0, 3, 3, "Item 7");

}

privatebooleanMenuChoice(MenuItem item) { switch (item.getItemId()) {

case 0:

Toast.makeText(this, "You clicked on Item 1", Toast.LENGTH_LONG) .show();

returntrue;

case 1:

Toast.makeText(this, "You clicked on Item 2", Toast.LENGTH_LONG) .show();

returntrue;

case 2:

Toast.makeText(this, "You clicked on Item 3", Toast.LENGTH_LONG) .show();

returntrue;

case 3:

Toast.makeText(this, "You clicked on Item 4", Toast.LENGTH_LONG) .show();

returntrue;

case 4:

Toast.makeText(this, "You clicked on Item 5", Toast.LENGTH_LONG)

(23)

.show();

returntrue;

case 5:

Toast.makeText(this, "You clicked on Item 6", Toast.LENGTH_LONG) .show();

returntrue;

case 6:

Toast.makeText(this, "You clicked on Item 7", Toast.LENGTH_LONG) .show();

returntrue;

}

returnfalse;

}

@Override

publicbooleanonCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu);

CreateMenu(menu);

returntrue;

}

@Override

publicbooleanonOptionsItemSelected(MenuItem item) { returnMenuChoice(item);

} }

menu.xml

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="fill_parent"

(24)

android:layout_height="fill_parent">

<Buttonandroid:id="@+id/btn1"android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="Hello, Tampilan Menu!"/>

</LinearLayout>

Apabila aplikasi menulayout dijalankan, tampilannya sepertipadaGambar 2.8.

Gambar 2.8 Tampilan Menu Layout.

Apabilakitamenekantombol MENU, tampilannyasepertipadaGambar 2.9.

(25)

Gambar 2.8 Tampilan MenuLayout Ketika Ditekan Tombol Menu.

Apabilakitamenekanpilihan menu MORE, tampilannyasepertipadaGambar 2.9.

Gambar 2.9 Tampilan MenuLayout Ketika Ditekan Tombol MORE.

(26)

3. SOALDAN PROJECT

Soal

1. Jelaskanapa yang dimaksuddenganView !

2. SebutkandanJelaskanmacam-macam view di Android !

Project

Buatlahsebuahaplikasisederhana yang menampilkangambar-gambarbendera Negara dalamsebuahgaleriview !

REFERENSI

Yudhi ,Wibisono .2011. Pengantar Mobile Programming dengan Android, UPI.

Safaat, H. Nazruddin. 2011. ANDROID PemrogramanAplikasi Mobile Smartphone dan Tablet PC Berbasis Android, PenerbitInformatika.

Referensi

Dokumen terkait

harga terhadap alternatif penyedia barang/jasa. Seperti dibahas pada bab sebelumnya bahwa bobot kriteria admnistrasi, teknis dan harga adalah 0,333. Untuk setiap

Ada beberapa tujuan dilakukannya automatic stop order pada obat di rumah sakit diantaranya : untuk memastikan keselamatan pasien dan meningkatkan pemantauan, untuk memastikan

Selain itu hasil dari penelitian diharapkan dapat memberi informasi ilmiah mengenai perbedaan kekuatan geser pelekatan resin komposit pada dentin menggunakan bonding total

Oleh sebab itu dengan demikian meningkatnya perkembangan kebutuhan air minum bagi masyarakat Kota Blitar, maka pengelolaan air minum yang semula dilaksanakan

Penelitian ini menunjukkan bahwa struktur tema- rema dalam teks abstrak berbahasa Indonesia terdiri atas empat klasifikasi struktur, yaitu (a) tema tunggal (TT), (b) tema ganda

Hal ini tercermin antara lain dengan semakin besarnya ancaman penyakit eksotik, pengawasan lalu lintas hewan dan produknya yang belum dapat dilaksanakan secara

Tujuan dari penelitian ini adalah dapat mengaplikasikan aplikasi aljabar maks-plus pada masalah penjadwalan pengoperasian BST koridor satu di Sura- karta dengan menentukan

Hasil ini menunjukkan bahwa ekstrak air kulit kayu mahoni dan senyawa rutin memiliki aktivitas antioksidan yang tinggi, sedangkan sampel kitosan, nanokitosan, nanopartikel dengan