Да, это возможно, но это сложно.
Вы не можете избежать изменения ориентации в своем коде, потому что вам придется поворачивать обои, чтобы всегда иметь их в портретном режиме.
Отслеживать ширину и высоту в
public void onSurfaceChanged (держатель SurfaceHolder, формат int,
int width, int height)
метод
android.service.wallpaper.WallpaperService.Engine
класс. Он вызывается каждый раз, когда меняется ориентация. Если ширина больше высоты, то, скорее всего, вы будете в ландшафтном режиме.
Тогда просто обработайте x как y, а width - как высоту и вращайте любые ваши растровые изображения. Это должно работать.