Feb 21, 2015

Tutorial cara membuat kompas di android

Kali ini saya akan share bagaimana cara membuat kompas di android,seperti basa disini saya menggunakan eclipse ADT (Android Developer Tools) temen-temen bisa langsung saja ikuti step by stepnya:

1. Buat projet baru dengan nama "CompassApp" atau terserah teman-teman

2. Ganti source code "activity_main.xml" dengan source code dibawah ini


    
    



3. Buka "MainActivity.java" copy paste source code dibawah ini


package com.example.compassapp;

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 MainActivity extends Activity implements SensorEventListener {



 // define the display assembly compass picture

 private ImageView image;



 // record the compass picture angle turned

 private float currentDegree = 0f;



 // device sensor manager

 private SensorManager mSensorManager;



 TextView tvHeading;



 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);



  // our compass image

  image = (ImageView) findViewById(R.id.imageViewCompass);



  // TextView that will tell the user what degree is he heading

  tvHeading = (TextView) findViewById(R.id.tvHeading);



  // initialize your android device sensor capabilities

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

 }



 @Override

 protected void onResume() {

  super.onResume();

  

  // for the system's orientation sensor registered listeners

  mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ALL),

    SensorManager.SENSOR_DELAY_GAME);

 }



 @Override

 protected void onPause() {

  super.onPause();

  

  // to stop the listener and save battery

  mSensorManager.unregisterListener(this);

 }



 @Override

 public void onSensorChanged(SensorEvent event) {



  // get the angle around the z-axis rotated

  float degree = Math.round(event.values[0]);



  tvHeading.setText("Heading: " + Float.toString(degree) + " degrees");



  // create a rotation animation (reverse turn degree degrees)

  RotateAnimation ra = new RotateAnimation(

    currentDegree, 

    -degree,

    Animation.RELATIVE_TO_SELF, 0.5f, 

    Animation.RELATIVE_TO_SELF,

    0.5f);



  // how long the animation will take place

  ra.setDuration(210);



  // set the animation after the end of the reservation status

  ra.setFillAfter(true);



  // Start the animation

  image.startAnimation(ra);

  currentDegree = -degree;



 }



 @Override

 public void onAccuracyChanged(Sensor sensor, int accuracy) {

  // not in use

 }

}


4. create java baru,beri nama "Compass.java" kemudian copy paste source code dibawah ini
package com.example.compassapp;


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 Compass extends Activity implements SensorEventListener {



 // define the display assembly compass picture

 private ImageView image;



 // record the compass picture angle turned

 private float currentDegree = 0f;



 // device sensor manager

 private SensorManager mSensorManager;



 TextView tvHeading;



 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_main);



  // our compass image

  image = (ImageView) findViewById(R.id.imageViewCompass);



  // TextView that will tell the user what degree is he heading

  tvHeading = (TextView) findViewById(R.id.tvHeading);



  // initialize your android device sensor capabilities

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

 }



 @Override

 protected void onResume() {

  super.onResume();

  

  // for the system's orientation sensor registered listeners

  mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ALL),

    SensorManager.SENSOR_DELAY_GAME);

 }



 @Override

 protected void onPause() {

  super.onPause();

  

  // to stop the listener and save battery

  mSensorManager.unregisterListener(this);

 }



 @Override

 public void onSensorChanged(SensorEvent event) {



  // get the angle around the z-axis rotated

  float degree = Math.round(event.values[0]);



  tvHeading.setText("Heading: " + Float.toString(degree) + " degrees");



  // create a rotation animation (reverse turn degree degrees)

  RotateAnimation ra = new RotateAnimation(

    currentDegree, 

    -degree,

    Animation.RELATIVE_TO_SELF, 0.5f, 

    Animation.RELATIVE_TO_SELF,

    0.5f);



  // how long the animation will take place

  ra.setDuration(210);



  // set the animation after the end of the reservation status

  ra.setFillAfter(true);



  // Start the animation

  image.startAnimation(ra);

  currentDegree = -degree;



 }



 @Override

 public void onAccuracyChanged(Sensor sensor, int accuracy) {

  // not in use

 }



}

5. runing project tersebut
hasil Screenshot :

atau temen-temen bisa download full project disini

About the Author

Setia Budi

Author & Editor

Terima kasih sudah berkunjung :)

2 komentar:

 
Setia Budi © 2015 - Designed by Templateism