Pour utiliser l’offset sur un LiveWallpaper, vous devez d’abord redéfinir la méthode onOffsetsChanged de BaseLiveWallpaperService. Le nombre d’arguments vous fait peur, n’ayez crainte seul pXOffset est intéressant.
Voici le code :
@Override public void onOffsetsChanged(final float pXOffset, final float pYOffset, final float pXOffsetStep, final float pYOffsetStep, final int pXPixelOffset, final int pYPixelOffset) { //Si vous voulez allez dans le sens inverse //xOffset = -1.0f * xOffset + 1.0f; //Modifier la position de votre Sprite Display display = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); mSprite.setPosition(((display.getWidth() - mSprite.getWidth()) * xOffset), mSprite.getY()); }
Je récupère la largeur de l’écran pour que votre sprite prenne bien toute les frames et pour éviter d’avoir une bordure noir sur votre dernière frame.
Si vous déplacez toute la scène, je vous conseille de déplacer la caméra plutôt que tout les éléments