Android重力感应应用


重力感应主要应用于游戏开发中,这个效果非常棒!主要是3个轴,简单理解:那个朝上,值为正,朝下值为负!这个效果我测试过了,由于在手机上才能实现重力感应,所以没有效果图。

一、MainActivity。java的代码:

  1. package com.ray.test;  
  2.   
  3. import Android.app.Activity;  
  4. import android.hardware.Sensor;  
  5. import android.hardware.SensorEvent;  
  6. import android.hardware.SensorEventListener;  
  7. import android.hardware.SensorManager;  
  8. import android.os.Bundle;  
  9. import android.widget.TextView;  
  10.   
  11. public class MainActivity extends Activity{  
  12.   
  13.     private SensorManager sensorMgr;   
  14.     private TextView show_TextView;  
  15.     Sensor sensor;  
  16.     private float x, y, z;     
  17.       
  18.     @Override  
  19.     protected void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);   
  21.         setContentView(R.layout.main);  
  22.         show_TextView = (TextView)findViewById(R.id.text_view);  
  23.         sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);     
  24.         sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);     
  25.         SensorEventListener lsn = new SensorEventListener()   
  26.         {     
  27.             @Override  
  28.             public void onSensorChanged(SensorEvent e) {  
  29.                 // TODO Auto-generated method stub   
  30.                 x = e.values[SensorManager.DATA_X];     
  31.                 y = e.values[SensorManager.DATA_Y];     
  32.                 z = e.values[SensorManager.DATA_Z];     
  33.                 setTitle("x="+(int)x+","+"y="+(int)y+","+"z="+(int)z);   
  34.                 show_TextView.setText("x="+(int)x+", "+"y="+(int)y+", "+"z="+(int)z);  
  35.             }  
  36.   
  37.             @Override  
  38.             public void onAccuracyChanged(Sensor arg0, int arg1) {  
  39.                   
  40.             }     
  41.         };   //注册listener,第三个参数是检测的精确度    
  42.         sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);   
  43.     }  
  44.   
  45. }  

二、main.xml的代码:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:orientation="vertical"  
  5.       
  6. android:layout_width="fill_parent"  
  7.       
  8. android:layout_height="fill_parent"  
  9.       
  10. >  
  11.       
  12. <TextView    
  13.           
  14. android:id="@+id/text_view"  
  15.           
  16. android:layout_width="fill_parent"   
  17.           
  18. android:layout_height="wrap_content"   
  19.           
  20. android:textSize="25pt"  
  21.       
  22. />  
  23.   
  24. </LinearLayout>  

相关内容