国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程實現的重力感應示例代碼

2020-04-11 11:20:32
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程實現的重力感應效果。分享給大家供大家參考,具體如下:

android中的很多游戲的游戲都使用了重力感應的技術,就研究了一下重力感應

以屏幕的左下方為原點,箭頭指向的方向為正。從-10到10,以浮點數為等級單位,想象以下情形:

手機屏幕向上(z軸朝天)水平放置的時侯,(x,y,z)的值分別為(0,0,10);
手機屏幕向下(z軸朝地)水平放置的時侯,(x,y,z)的值分別為(0,0,-10);
手機屏幕向左側放(x軸朝天)的時候,(x,y,z)的值分別為(10,0,0);
手機豎直(y軸朝天)向上的時候,(x,y,z)的值分別為(0,10,0);
其他的如此類推,規律就是:朝天的就是正數,朝地的就是負數。
利用x,y,z三個值求三角函數,就可以精確檢測手機的運動狀態了。

代碼實例:
AndroidManifest.xml

復制代碼 代碼如下:
<uses-permission android:name="android.hardware.sensor.accelerometer"/>

代碼很簡單,直接看源碼,最后提供了源碼下載

Java Code:

package com.learn.sunboy;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.MotionEvent;import android.widget.Toast;public class TestSensor extends Activity{  private SensorManager mSensorManager = null;  private Sensor mSensor = null;  private float x, y, z;  @Override  protected void onCreate(Bundle savedInstanceState){    super.onCreate(savedInstanceState);    mSensorManager = (SensorManager)this.getSystemService(SENSOR_SERVICE);    mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);  }  SensorEventListener lsn = new SensorEventListener() {    @Override    public void onSensorChanged(SensorEvent event) {      x = event.values[SensorManager.DATA_X];      y = event.values[SensorManager.DATA_Y];      z = event.values[SensorManager.DATA_Z];    }    @Override    public void onAccuracyChanged(Sensor sensor, int accuracy) {      // TODO Auto-generated method stub    }  };  @Override  public boolean onTouchEvent(MotionEvent event){    if(event.getAction() == MotionEvent.ACTION_DOWN){      mSensorManager.registerListener(lsn, mSensor, SensorManager.SENSOR_DELAY_GAME);      String str = "x=" + x + "; y=" + y + "; z=" + z;       Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();    }    return super.onTouchEvent(event);  }  @Override  public void onResume(){    mSensorManager.registerListener(lsn, mSensor, SensorManager.SENSOR_DELAY_GAME);    super.onResume();  }  @Override  public void onPause(){    mSensorManager.unregisterListener(lsn);    super.onPause();  }}

運行效果:

注明:這是在模擬器上截圖(SDK  V1.5), 由于模擬器無法感應重力,請大家在物理機上測試

完整實例代碼代碼點擊此處本站下載

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垣曲县| 女性| 洛阳市| 巴彦淖尔市| 水城县| 赤壁市| 东辽县| 福贡县| 项城市| 阜康市| 长乐市| 秦安县| 博客| 葵青区| 同江市| 长沙县| 余干县| 松原市| 平凉市| 兴文县| 南康市| 苏尼特左旗| 综艺| 大邑县| 双流县| 栾城县| 思茅市| 进贤县| 科技| 兴国县| 夏邑县| 灵丘县| 通城县| 澄迈县| 融水| 原平市| 会泽县| 若尔盖县| 思茅市| 封开县| 赤壁市|