You are on page 1of 3

Modul Pemrograman Android

Stephanus Priyowidodo (Android Developer) AMIK Harapan Medan

Mengenal Penggunaan Sensor Kompas


Pada modul ini kita akan bersama-sama membuat contoh sederhana pemanfaatan
sensor kompas pada Android. Aplikasi ini hanya terdiri atas 1 (satu) activity saja, yakni
activity untuk membaca sensor kompas dan menampilkan gambar arah angin sesuai
derajat yang dihasilkan sensor. Agar tidak berpanjang kalam, mari kita coba codingnya.

1. Buatlah gambar peta arah angin dari UTARA, TIMUR, SELATAN, BARAT dalam
bentuk file .PNG. Contohnya seperti berikut:

Anda dapat membuatnya sendiri atau seperti gambar di atas yang dicari dan
diambil dari internet via Google, kemudian dimodifikasi dan disimpan dalam
format file .PNG interlace, agar putaran kompas yang akan dihasilkan terlihat
lebih real, beri nama filenya dengan kompas.png.
2. Bukalah project baru pada ADT dengan nama Kompas, ubah nama activity-nya
menjadi KompasActivity dan nama layoutnya akan otomatis berubah menjadi
activity_kompas.
3. Copy-lah file kompas.png ke dalam folder resdrawable_hdpi.
4. Ubahlah isi file activity_kompas dengan kode berikut::

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff" >

<TextView
android:id="@+id/tvHeading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="60dp"
android:text="0.0"
android:textSize="40sp" />

<ImageView
android:id="@+id/imageViewCompass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvHeading"
android:src="@drawable/kompas" />

</RelativeLayout>

5. Sekarang bukalah KompasActivity.java dan tambahkan coding berikut:


package com.example.kompas;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.TextView;

public class KompasActivity extends Activity implements


SensorEventListener{
private ImageView image;
private float currentDegree = 0f;
private SensorManager mSensorManager;
private TextView tvHeading;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kompas);
image = (ImageView) findViewById(R.id.imageViewCompass);
tvHeading = (TextView) findViewById(R.id.tvHeading);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
}

@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
}

@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this);
}

@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}

@Override
public void onSensorChanged(SensorEvent event) {
// ambil derajat
float degree = Math.round(event.values[0]);
tvHeading.setText(Float.toString(degree) + (char) 0x00B0);
// buat animasi rotasi gambar
RotateAnimation ra = new RotateAnimation(
currentDegree,
-degree,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF,
0.5f);

// lama animasi dama ms


ra.setDuration(100);
ra.setFillAfter(true);

// Start animasi
image.startAnimation(ra);
currentDegree = -degree;
}

6. Jalankan aplikasi pada AVD atau gadget, Anda akan melihat tampilan gambar
kompas, arahkan ke arah mata angin dan lihat hasilnya.

Anda dapat mengembangkan aplikasi sederhana kompas ini, misalnya untuk


keperluan aplikasi tracking, game, arah kiblat dll.

Agar menjadi programmer Android yang handal, sebaiknya Anda tetap fokus dalam
mempelajari dan memahami isi modul ini, ibarat pepatah, Tak kenal maka tak
paham...

Selamat belajar, sampai jumpa di modul berikutnya.

You might also like