当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,