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:



  • 相关阅读:
    05-Selenium的三种等待
    04-selenium 八大元素定位方法
    03-Selenium简单操作
    python-利用json模块处理json数据几个函数总结
    python-利用pymysql获取数据简单使用总结
    python-利用faker模块生成测试数据
    python-利用random模块生成测试数据封装方法总结
    python-利用shutil模块rmtree方法可以将文件及其文件夹下的内容删除
    pytest--配置用例执行顺序(pytest_ordering插件介绍)
    pytest--mark基本使用(主要通过pytest.ini文件注册标签名,对用例进行标记分组)
  • 原文地址:https://www.cnblogs.com/james1207/p/3290072.html
Copyright © 2011-2022 走看看