Comment éviter une pause live wallpaper android alors que l'activité de paramètres est ouvert lors de l'utilisation GLSurfaceView

StackOverflow https://stackoverflow.com/questions/4469267

Question

Je suis en train d'écrire un fond d'écran en direct 3d pour Android en utilisant l'emballage célèbre GLSurfaceView (http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers)

Quand j'ouvre l'écran de préférence pour modifier les paramètres de papier peint, les paramètres sont affichés sous forme transparente sur mon aperçu fond d'écran. Ce qui est bon parce qu'il me permet de prévisualiser les changements de paramètres que je fais. Cela fonctionne très bien, sauf un problème: Le fond d'écran en direct est en pause tant que les réglages sont au-dessus de celui-ci

Comment puis-je éviter ma pause de fond d'écran?

Était-ce utile?

La solution

Je suis venu avec une solution de contournement qui pourrait être utile, selon la façon dont les fonctions de votre fond d'écran ...

Dans mon activité de paramètres, chaque fois que l'utilisateur effectue un changement (par exemple déplace un curseur, contrôle une case à cocher), je diffuse une Intent les informations des paramètres pertinents.

Dans la méthode de onCreate de papier peint en direct, je Déclare dynamiquement un BroadcastReceiver pour recevoir ces événements de paramètres. Je désinscription ce récepteur dans onDestroy.

Lors de la réception d'une émission de réglages, je fais le fond d'écran dessiner une seule image avec les nouveaux paramètres. Comme l'activité de paramètres est transparent, ce qui donne immédiatement à l'utilisateur une idée de ce que le fond d'écran ressemblera avec les réglages choisis.

De même, en utilisant cette approche, vous pouvez programmer le fond d'écran pour animer pendant quelques secondes après un changement de paramètres -. Ou tout ce qui est approprié pour votre mise en œuvre

Autres conseils

Je trouve que cela est un peu ennuyeux aussi bien. Je détournais la question tout à fait en appelant simplement finish() dans mes paramètres activité chaque fois qu'une modification est apportée. Cela permet un instant, aperçu complet du fond d'écran pour l'utilisateur. Il suffit d'un clic pour revenir dans les paramètres pour faire un autre changement et il fait pour une expérience utilisateur plutôt agréable.

 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
            String key) {
       finish();
 }

je dans ma ligne de papiers peints. est un exemple:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top