2

我正在尝试根据用户倾斜设备的方式移动 ImageView。我还在学习 Android 开发,所以我对传感器不太了解。我已经尝试过使用它,但我不确定之后该怎么做,但我猜我在正确的轨道上。

ImageView image = (ImageView) findViewById(R.id.image);
SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor mSensor =  mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);

任何提示都会有所帮助谢谢!

4

2 回答 2

1

您需要创建并注册一个SensorListener

mSensorManager.registerListener(mSensorListener, sensor, SensorManager.SENSOR_DELAY_GAME);

然后在 SensorListener 的onSensorChanged(SensorEvent event)方法中,从event.values数组中获取传感器读数。

这将为您提供重力值,然后您可以使用它来移动ImageView.

至于如何移动ImageView,这在很大程度上取决于Layout视图的类型,但您可以尝试设置ImageView's边距。

于 2014-02-11T04:16:41.497 回答
1

看看这个SO question 以更多地了解重力。

尝试通过此示例了解指南针的工作原理

我猜你正在寻找解决方案

ImageView 根据用户倾斜设备的方式移动

这就像这个加速度计示例

在此处输入图像描述

于 2014-02-11T08:15:01.857 回答