Jour/Nuit thème pour android
J'ai une application dans laquelle j'ai besoin d'implémenter jour /nuit thème. Malheureusement, il n'existe pas de moyen simple de faire de la thématisation par juste en utilisant des styles, j'ai besoin d'être en mesure de mettre à jour: mise en page de milieux, bouton de sélecteurs, la couleur du texte, taille du texte, les images, les icônes, animations.
De ce que je vois j'ai 2 options:
- Ont différentes xml des fichiers de mise pour jour/nuit, donc quelque chose comme
home_day.xml
/home_night.xml
. Il y a environ 30 écrans de l'application, de sorte que dans la fin, il y aura 60 xml mises en page. De l'activité ou de fragment onCreate, sur la base des heures j'ai pusetContentView
. Cela ajoute un peu plus de fichiers xml, mais évite l'ajout du code plus dans des activités - Ont seulement une mise en page pour le jour/nuit et sur l'activité de l'
onCreate
findviewById pour chaque élément que je veux thème et mise à jour de ses attributs, sur la base actuelle de jour/nuit. Cela pourrait générer beaucoup de code supplémentaire, findviews et appliquer des attributs de nombreux points de vue.
Je cherche pour pour 2. mais je suis ouvert à toutes suggestions de votre part. Donc, que choisiriez-vous et pourquoi ?
Je voudrais utiliser
Ce vraiment tout se résume à savoir si ou non vous l'idée de faire de GUI de travail dans le code. Personnellement, je pense qu'il serait plus simple et plus facile d'avoir une mise en page distincte pour la nuit et un autre pour la journée. Il pourrait y avoir une troisième option si vous pouvez utiliser un drawable pour vos origines, la couleur du texte, et de tout ce qui devrait changer, et de créer un état pour le jour/nuit. Ensuite, vous pouvez faire défiler toutes vos points de vue et de modifier l'état. Ne sais pas comment différents qui serait à partir de votre option 1 si.
pourrais-tu élaborer un peu dans une réponse ? Merci
-night
comme un ensemble de ressources qualificatif pour le mode nuit, de mettre votre nuit de ressources spécifiques.Ce vraiment tout se résume à savoir si ou non vous l'idée de faire de GUI de travail dans le code. Personnellement, je pense qu'il serait plus simple et plus facile d'avoir une mise en page distincte pour la nuit et un autre pour la journée. Il pourrait y avoir une troisième option si vous pouvez utiliser un drawable pour vos origines, la couleur du texte, et de tout ce qui devrait changer, et de créer un état pour le jour/nuit. Ensuite, vous pouvez faire défiler toutes vos points de vue et de modifier l'état. Ne sais pas comment différents qui serait à partir de votre option 1 si.
pourrais-tu élaborer un peu dans une réponse ? Merci
OriginalL'auteur Alin | 2013-08-01
Vous devez vous connecter pour publier un commentaire.
En fait il semble que vous pouvez utiliser des thèmes pour décrire personnalisé un drawable. Jetez un oeil à: Comment basculer entre le mode nuit et le jour-mode de thèmes sur Android?. Vous créer vos thèmes à l'aide d'un bloc de style et puis dans votre xml de mise en page vous préciser quelque chose dans votre thème à l'aide ?attr. Ensuite, vous devriez être en mesure d'appeler setTheme(R. styles.DAY_THEME) sur l'activité suivante et tout devrait être mis à jour.
<item name="menuIconCamera">
, je crois, partie du thème, donc je peux le personnaliser. Mais ce qui, dans mon cas, quand j'ai besoin d'avoir un autre drawable pour imgLogo par exemple ?Ce ne sont pas de système android attributs, ils sont personnalisés. Vous avez besoin de faire ces vous-même. Voici un bon exemple de comment faire: stackoverflow.com/questions/3441396/defining-custom-attrs/....
A part cela, vous pouvez également utiliser les attributs de style directement dans un fichier xml de mise en page. Comme si vous avez créé un "exit_button_background" attribut, vous pouvez définir cette valeur dans votre xml comme "myapp:exit_button_background="@drawable/night_background"", mais pour votre cas, il semble que vous auriez besoin de créer vos attributs personnalisés, de sorte que vous peut utiliser dans une nuit personnalisé et le thème de la journée.
Oui, dans ce mode de fonctionnement, la définition des attributs personnalisés et de les utiliser dans des styles. Merci beaucoup pour votre aide.
OriginalL'auteur mpellegr
Vérifier ce tutoriel pour terminer l'étape par étape exemple: cliquez ici
Ajouter à Commutation Automatique jour-nuit Thème à l'aide de Appcompat v23.2 bibliothèque de prise en charge
Ajouter la chose suivante dans votre construction.gradle fichier
Faire le thème de votre style comme ci-dessous
maintenant ajouter suivant une ligne de code dans onCreate() la méthode de fixation thème pour l'ensemble de l'application
Pour Le Réglage Par Défaut De Commutation Automatique En Mode Nuit
Pour Le Réglage Par Défaut Du Mode Nuit
Pour Le Réglage Par Défaut En Mode Jour
OriginalL'auteur nirav kalola
J'utiliserais
-night
comme un ensemble de ressources qualificatif pour le mode nuit, de mettre votre nuit de ressources spécifiques.Android a déjà la notion de mode de nuit, la commutation entre la nuit et le jour, les modes basés sur l'heure de la journée et des capteurs. Par conséquent, vous pourriez envisager de l'utiliser.
Par exemple, d'avoir un thème différent basé sur la mode, créer
res/values/styles.xml
etres/values-night/styles.xml
. Avoir un thème avec le même nom dans chaque fichier (par exemple,AppTheme
), mais d'adapter le thème basé sur ce que les différences que vous voulez avoir entre les modes jour et nuit. Lorsque vous faites référence à votre thème par nom (par exemple, dans le manifeste), Android est automatiquement chargé dans le droit de ressources, et Android sera automatiquement détruire et recréer vos activités si les changements de mode alors que ces activités sont en cours d'exécution.Maintenant, si vous voulez le manuel de contrôle de l'utilisateur sur l'opportunité d'utiliser une soirée sur le thème de l'INTERFACE utilisateur,
-night
ne va pas aider.-night
est hors de question que le réglage de la nuit en mode dit " des Changements du mode nuit ne sont efficaces que lorsque la voiture ou au bureau de mode est activé sur un périphérique.`Vous pouvez activer le mode voiture vous-même à l'aide de UiModeManager.enableCarMode(), mais je peux dire que les effets de la mise de l'appareil en mode auto ne sont pas 100% clair pour moi.
Que de la bibliothèque de prise en charge de 23,2 il y a des Api pour l'inclusion d'un thème de votre application passe automatiquement à la nuit en fonction du moment de la journée. android-developers.blogspot.com/2016/02/...
Bonjour monsieur, désolé pour cogner ce fil, mais pouvez-vous partager avec moi comment faire le mode nuit. Merci beaucoup!
Désolé, mais je ne sais pas ce que tu veux dire par "faire le mode nuit". Je vous suggère de demander une Pile séparée de Débordement de la question, où vous pouvez expliquer plus en détail ce dont vous avez besoin.
OriginalL'auteur CommonsWare
voici ma solution:
-> De la NOAA des pages web, on peut trouver des algorithmes pour calculer le soleil de hauteur sur l'horizon donné une certaine position et la date.
--> l'Utilisation de ces algoritms j'ai créé une méthode permettant de calculer la hauteur du soleil sur l'horizon donné deux doubles Latitude & Longitude et un Calendrier
Puis dans le MainActivity j'ai une méthode qui vérifie toutes les 5 minutes pour que la hauteur du soleil à la position donnée:
Cette méthode définit le style à utiliser et j'ai trois d'entre eux. Deux pour la lumière du jour et de la nuit, l'un pour le crépuscule, lorsque le soleil commence à être réfracté dans l'atmosphère
Cela a été plutôt bien et de prendre en compte l'heure d'été correction.
Sources:
La NOAA Lever du soleil Coucher du soleil
Jour Julien
OriginalL'auteur user1892410