本文实例讲述了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

代码很简单,直接看源码,最后提供了源码下载

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程序设计有所帮助。

android 重力感应代码,Android编程实现的重力感应示例代码相关推荐

  1. python3图片转代码_python3图片转换二进制存入mysql示例代码

    python3图片转换二进制存入mysql示例代码 发布于 2014-09-29 18:00:01 | 198 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面 ...

  2. android百度api配置,Android Studio 配置使用百度api (附带简单样例)(示例代码)

    还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明.  难道,是因为后者是 "Doo ...

  3. unity Android 剪贴板,Unity移动端的复制要这么写示例代码

    前言 Unity官网提供了详尽的文档和丰富的教学视频,昨天跟着视频做了一个简单的3d游戏"roll-a-ball".游戏涉及了许多Unity的基本知识,用来入门很不错. 本文主要给 ...

  4. android开发分享到微信,Android开发之微信分享到好友,朋友圈(示例代码)

    3. 快速集成 第二步:配置AndroidManifest.xml 下面清单文件的配置是全部的,没有的平台就是不需要配置 1.添加权限 2.添加activity信息 (注意: tencent后面的ap ...

  5. android vitamio集成教程,集成Vitamio实现万能播放器(示例代码)

    简介: Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐.到目 ...

  6. android的动态tab,Android自定义view仿QQ的Tab按钮动画效果(示例代码)

    话不多说 先上效果图 实现其实很简单,先用两张图 一张是背景的图,一张是笑脸的图片,笑脸的图片是白色,可能看不出来.实现思路:主要是再触摸view的时候同时移动这两个图片,但是移动的距离不一样,造成的 ...

  7. android怎么用代码调图像,浅谈android中图片处理之图形变换特效Matrix(四)(示例代码)...

    今天,我们就来谈下android中图片的变形的特效,在上讲博客中我们谈到android中图片中的色彩特效来实现的.改变它的颜色主要通过ColorMatrix类来实现. 现在今天所讲的图片变形的特效主要 ...

  8. android自定义主题背景颜色,Android 自定义SeekBar 实现分段显示不同背景颜色的示例代码...

    在最近的开发工作中,要实现一个调色板的进度条,SeekBar要分成10段显示不同颜色,功夫不负有心人,终于实现了这个功能,下面分享给大家 示例图: 1.自定义SeekBar import androi ...

  9. android 3d魔方 代码,css实现3d立体魔方的示例代码

    今天来做一个简单的3d魔方 先看效果图吧!把这个看会了,一些网上的3d的相册你就都会了 一.我们先准备好们的html代码 3d立体魔方 好了我们html代码就准备完成了,首先我们要有一个3d的思维,在 ...

  10. java socket 重连复用_Java Socket编程基础及深入讲解(示例代码)

    Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...

最新文章

  1. 把php写入织梦,dedeCMS远程写入getshell(测试版本V5.7)
  2. 文巾解题3. 无重复字符的最长子串
  3. 新浪宣布2010年第四季度业绩 盘后跌4%
  4. cordova 更改app版本_Cordova打包Android应用流程(MAC)
  5. 用域控制禁止本地存盘禁止使用移动磁盘以防止图纸泄密的解决方案
  6. python分数类_利用标准库fractions模块让Python支持分数类型的方法详解
  7. Logstash实践: 分布式系统的日志监控
  8. Linux Vue环境搭建
  9. word在html中预览,在网页中预览word和excel
  10. 《东周列国志》第六十五回 弑齐光崔庆专权 纳卫衎宁喜擅政
  11. GC—MS常见数据库有哪些,NIST和AMDIS有什么作用?
  12. 解决win10注册错误 错误代码0x8002801c
  13. 在Centos系统下创建与Windows的共享文件夹
  14. python 网格交易源码_网格交易策略[tb源码]
  15. tomcat处理html流程,基于Tomcat运行HTML5 WebSocket echo实例详解
  16. MySQL数据库操作语言
  17. 微型计算机控制系统分几类,微型计算机控制技术 潘新民版 答案
  18. 使用IBM Data Studio 管理DB2
  19. 上海交大计算机系奖学金名额,上海交通大学-电子信息与电气工程学院-学生工作办公室...
  20. 抖音禁封规则讲解(8)涉嫌黑社会,走私物品被禁封丨国仁网络

热门文章

  1. 【Qt】动画使用及惯性效果
  2. 戴尔R230安装esxi
  3. 解读神经网络十大误解,再也不会弄错它的工作原理
  4. 使用Match函数对合并单元格的行数进行统计
  5. 魑、魅、魍、魉、妖、精、鬼、怪的区别
  6. 神经元振荡中相位幅值耦合的量化:锁相值、平均向量长度、调制指数和广义线性模型交叉频率耦合
  7. 智能投顾-用户画像、投资组合选择、推荐引擎、大数据挖掘
  8. Puppet nginx+passenger模式配置
  9. 关于Iphone 4 如何用itunes备份短信等设置
  10. 高等代数--线性空间