zoukankan      html  css  js  c++  java
  • 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:



  • 相关阅读:
    装饰设计模式
    Enum的基本使用
    java根据文件流判断文件类型(后缀名)
    Java正则表达式的用法
    java遍历Map
    java操作json
    struts2+ajax+jquery
    Hibernate注解
    oracle经典建表语句--scott建表
    Struts2 ui标签
  • 原文地址:https://www.cnblogs.com/james1207/p/3290072.html
Copyright © 2011-2022 走看看