可以通过SensorManager.DATA_ 取得坐标,但怎么判断相比较改变前是往哪里倾了呢?有没有什么方法可以取得上一次坐标?谢谢
解决方案 »
- 安卓tabhost手势滑动效果问题
- 【求助】Eclipse无法导入android项目的问题
- Android 播放MP3 报错
- 也问:如何获得控件大小(高度、宽度等)尺寸信息?
- 神奇问题,android项目 每次 运行都启动一个avd
- 重写onPause(),按下Back或Home键“程序意外停止”的问题
- android有一段TabHost的编码错误,有高手帮着调试一下吗?
- 史上最强 最全Android 视频教程 文档 资料 绝对最强
- android ndk 静态库调试
- 小白求助关于android ndk 成功安装使用问题
- Android开发环境还要装jdk呢?
- 求助 看看这样的效果android有没有现成的组件来实现。
接下来,用最短的代码完成Android重力感应功能,程序效果就是在title上面输出x,y,z的值。
import Android.app.Activity;
import Android.os.Bundle;
import Android.hardware.SensorManager;
import Android.hardware.Sensor;
import Android.hardware.SensorEventListener;
import Android.hardware.SensorEvent;
public class SensorTest extends Activity {
private SensorManager sensorMgr;
Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
private float x, y, z;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
SensorEventListener lsn = new SensorEventListener()
{
public void onSensorChanged(SensorEvent e) {
x = e.values[SensorManager.DATA_X];
y = e.values[SensorManager.DATA_Y];
z = e.values[SensorManager.DATA_Z];
setTitle("x="+(int)x+","+"y="+(int)y+","+"z="+(int)z);
}
public void onAccuracyChanged(Sensor s, int accuracy) { } }; //注册listener,第三个参数是检测的精确度
sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);
}
}