Professional Documents
Culture Documents
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::
<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>
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;
@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);
// 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.
Agar menjadi programmer Android yang handal, sebaiknya Anda tetap fokus dalam
mempelajari dan memahami isi modul ini, ibarat pepatah, Tak kenal maka tak
paham...