android 传感器使用 Compass指南针的实现功能

以下是指南针通过方向传感器而旋转实现。

CompassDemo.java:

 

package com.example.activity;



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;



public class CompassDemo extends Activity implements SensorEventListener {

private ImageView imageView;

SensorManager mSensorManager;

private float currentDegree=0f;

	@Override

protected void onCreate(Bundle savedInstanceState) {

	super.onCreate(savedInstanceState);

	setContentView(R.layout.compass);

	imageView=(ImageView)findViewById(R.id.znzImage);

	mSensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);

}



	

	@Override

	protected void onResume() {

		mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_GAME);

		super.onResume();

	}

	

	

	@Override

	protected void onPause() {

		mSensorManager.unregisterListener(this);

		super.onPause();

	}



	



	@Override

	protected void onStop() {

		mSensorManager.unregisterListener(this);

		super.onStop();

	}





	@Override

	public void onAccuracyChanged(Sensor arg0, int arg1) {

		



	}



	@Override

	public void onSensorChanged(SensorEvent event) {

	int sensortype=event.sensor.getType();

	switch(sensortype){

	case Sensor.TYPE_ORIENTATION:

		float degree=event.values[0];

		RotateAnimation ra=new RotateAnimation(currentDegree,-degree,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

		ra.setDuration(200);

		imageView.startAnimation(ra);

		currentDegree=-degree;

		break;

	}



	}



}


 

compass.xml:

 

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

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

	android:orientation="vertical"

	android:layout_width="fill_parent"

	android:layout_height="fill_parent"

	android:background="#fff"

	>

<ImageView

	android:id="@+id/znzImage"

	android:layout_width="fill_parent"

	android:layout_height="fill_parent"

	android:scaleType="fitCenter"

	android:src="@drawable/znz" />

</LinearLayout>


在这里给大家分享一下指南针图片znz:

 

android 传感器使用 Compass指南针的实现功能


 

你可能感兴趣的:(android)