В зависимости от особенностей вашего приложения, вы можете рассмотреть возможность использования OpenGL ES для манипуляций в трех измерениях.Тогда достаточно распространенным подходом было бы визуализировать изображение на «квад» (в основном на плоской поверхности, состоящей из двух треугольников) и манипулировать этим, используя матрицы, которые вы строите на основе данных акселерометра.
Альтернативой может бытьИзучите расширение стандартного ImageView, который из коробки поддерживает манипуляции с матрицами 3х3.Для поворота этого будет достаточно, но, очевидно, вам понадобится дополнительное измерение для перевода - за которым вы, вероятно, следите, заметив ваше замечание о «перемещении» изображения.
Если вы решите пойти с первым предложениемэтот пример кода должен быть весьма полезным для начала.Вы, вероятно, сможете подключить данные вашего датчика прямо к этому и просто добавить необходимую математику для манипуляций с матрицей.