3

Je code dans un appwidget que je veux courir quand change sur l'écran d'accueil, à savoir comme l'orientation du téléphone lorsque le clavier est éjecté. J'ai une image que je veux changer dans une imageview dans mon appwidget. Je ne peux pas utiliser différentes mises en page liées à l'orientation (ie "layout" et "layout-land") car je ne connais pas le nom du fichier image avant l'exécution, il est créé lors de l'exécution. Est-il possible de déclencher le code uniquement si l'écran d'accueil est affiché, mon appwidget est actif et l'orientation a juste changé?appWidget Orientation code

je pouvais écouter une émission configuration_change mais qui se déroulera chaque fois que le téléphone passe en mode paysage ou portrait et je veux que cela se produise quand est montré l'écran d'accueil. Je ne peux pas penser à un bon moyen d'Android pour le faire. Merci

Ryan

+0

Y at-il de toute façon de savoir si l'écran d'accueil se trouve sur le dessus de la pile d'activité? ou savoir ce que c'est? – rgrandy

+0

En théorie oui, voir http://stackoverflow.com/questions/6285410/android-detect-if-an-activity-is-on-the-top-of-the-history-stack, mais l'écran d'accueil est un Activité spécifique, qui sera probablement différente en fonction de l'appareil que vous utilisez. –

Répondre

3

Il n'y a pas une bonne façon de le faire pour les images générées lors de l'exécution.

Une approche serait de construire les deux versions de l'image et ont deux ImageViews qui sont visibles en fonction de la mise en page/mise en terre utilisée. (Ainsi, les RemoteViews actualiserait les deux ImageViews, mais seulement le bon serait visible.)

0

Jeff, quelle est la raison de cette limitation? J'aimerais pouvoir utiliser les images générées lors de l'exécution, ou construire le RemoteView sur le runtime, plutôt que d'utiliser le XML précompilé - c'est tellement rigide.

0

Il y a plus d'infos sur http://groups.google.com/group/android-developers/browse_thread/thread/0eb7c016be05e0b9/d31b312e2fa8530d

jour Fondamentalement le widget de onConfigurationChanged() dans une activité et ajouter Android: configChanges = « orientation » pour cette activité dans votre manifeste. La mauvaise chose est, cela ne couvre pas tous les cas d'utilisation.

+0

Vous pouvez utiliser un service au lieu d'une activité pour le faire. Cela couvrirait sûrement plus de cas d'utilisation, mais il y a toujours le cas où il y a un AppWidget et votre application est arrêtée. –