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:



  • 相关阅读:
    【ES】学习10-聚合3
    Flink – CEP NFA
    cruise-control
    FlinkCEP
    Flink
    SQL Join
    Flink – Stream Task执行过程
    Flink
    Java8
    Flink
  • 原文地址:https://www.cnblogs.com/james1207/p/3290072.html
Copyright © 2011-2022 走看看