android 重力传感器的使用

获取重力传感器的值大小并显示出来:

代码:MainActivity.java

package com.example.example;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView grivaty;
	private SensorManager sensorMgr = null;
	private float x,y,z;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        initUI();
        
    }
    private void initUI() {
		// TODO Auto-generated method stub
    	grivaty = (TextView)findViewById(R.id.grivaty);
    	//通过服务得到传感器管理对象
    	sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
    	//得到重力传感器实例
    	//TYPE_ACCELEROMETER 加速度传感器(重力传感器)类型。 
		//TYPE_ALL 描述所有类型的传感器。 
		//TYPE_GYROSCOPE 陀螺仪传感器类型 
		//TYPE_LIGHT 光传感器类型 
		//TYPE_MAGNETIC_FIELD 恒定磁场传感器类型。 
		//TYPE_ORIENTATION 方向传感器类型。 
		//TYPE_PRESSURE 描述一个恒定的压力传感器类型 
		//TYPE_PROXIMITY 常量描述型接近传感器 
		//TYPE_TEMPERATURE 温度传感器类型描述 
        final Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);       
        SensorEventListener lsn = new SensorEventListener() {
            @SuppressWarnings("deprecation")
            //传感器获取值改变时响应此函数
            public void onSensorChanged(SensorEvent e) {
                x = e.values[SensorManager.DATA_X];
                y = e.values[SensorManager.DATA_Y];
                z = e.values[SensorManager.DATA_Z];                                 
                // getsensor();
                grivaty.setText("x=" + x + "  y=" + y + "  z=" + z );//左右x值,左正右负,前后位y值,前负后正
            }

            public void onAccuracyChanged(Sensor s, int accuracy) {

            }
        };
            
        
        //注册listener,第三个参数是检测的精确度
        sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);                  
	} 
}
布局文件:main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/grivaty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

</RelativeLayout>



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值