Чтобы переместить изображение, посмотрите, как это делается в этом примере . По сути, ключ заключается в том, чтобы получить какую-то матрицу и манипулировать ею на основе некоторого ввода, в случае этого примера - касания / перетаскивания пользователя. Приведенный ниже код не работает идеально, но он показывает ключевые команды и классы, необходимые для выполнения перетаскивания. Для получения дополнительной информации см. Связанную статью.
Matrix matrix = new Matrix();
savedMatrix.set(matrix);
matrix.postTranslate(event.getX() - start.x)
ImageView view = (Some image view here)
view.setImageMatrix(matrix);
Следующая часть заключается в том, чтобы каким-то образом использовать акселерометр для получения входных данных. Я оставлю это вам, как наилучшим образом соединить их вместе. Мой источник этой информации эта статья . Есть несколько основных шагов.
Первым шагом является регистрация слушателя, и это делается с помощью этого кода.
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor sensor = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
Следующим шагом является регистрация прослушивателя датчика. Последний бит должен показать, как выглядит датчик слушателя. Обратите внимание, что имеется 3 выхода акселерометра, по одному для каждой координаты x, y и z.
@Override
protected void onResume() {
super.onResume();
sensorManager.registerListener(accelerationListener, sensor,
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onStop() {
sensorManager.unregisterListener(accelerationListener);
super.onStop();
}
private SensorEventListener accelerationListener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int acc) {
}
@Override
public void onSensorChanged(SensorEvent event) {
x = event.values[0];
y = event.values[1];
z = event.values[2];
}
};
Следующим шагом будет выяснение значений x, y и z для желаемого приложения. Я предлагаю вам взять и записать каждый из них, используя оператор Log.v(TAG,...)
. Поиграйте с наклоном и определите, что именно вы хотите сделать. Настраивайте его до тех пор, пока он не достигнет нужного уровня чувствительности, увидев, как далеко он находится от прямого вверх и вниз, и определенную скорость изменения координат x и y изображения. Удачи!