IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Gérer le fond d'ecran


Sujet :

Android

  1. #1
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut Gérer le fond d'ecran
    Bonjour à tous et à toutes,

    1) J'aimerai savoir comment faire pour modifier mon fond d’écran de mon appli.

    2) Comment gérer le fond d’écran afin de programmer une application qui demande de choisir une photo parmi la bibliothèque et de la mettre en fond d’écran!


    Merci de votre aide

  2. #2
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    Tu parle pour changer ton fond d'écran dynamiquement ou pour en mettre un de base?

    Et j'ai pas trop compris ta deuxième question ^^

  3. #3
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Bonjour.
    1) J'aimerai savoir comment faire pour modifier mon fond d’écran de mon appli.
    Dans ton layout qui remplit l'écran tu mets :
    android:background: et là tu peux mettre ce que tu veux.

    2) Comment gérer le fond d’écran afin de programmer une application qui demande de choisir une photo parmi la bibliothèque et de la mettre en fond d’écran!
    http://developer.android.com/resourc...ews/index.html
    Je pense que tu pourrais faire une GridView avec les images que tu va récupérer dans ta bibliothèque avec un Listener qui va changer le background selon l'item cliqué.

    Edit : Je pense que les images sont stockées dans le dossier download de la carteSD, si c'est le cas tu sais déjà où récupérer les images.
    Keith Flint 1969 - 2019

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci pour vos réponses

    Oui je parle de changer un fond d'ecran dynamiquement via le code de mon application et non en dure en faite!

    Donc au final j'ai bien compris comment lister mes images mais comment faire en sorte d'en mettre une en fond d'ecran? Quel est le listener qui va me permettre de faire ca et comment?

    EDIT: Peut on modifier la valeur de mon android:background dynamiquement dans le code de mon application?
    Plus généralement comment modifier les variables de mes fichiers xml?

  5. #5
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    En gros :
    On va dire que tu va récupérer les images situé dans ta carte SD et en faire une liste.
    Grâce à cette liste et un Adapter tu va pouvoir construire, par exemple, une GridView contenant tes images.
    Avec un listenerer lors tu click sur un item (un item sera construis à partir d'une image) tu va exécuter une méthode qui va recevoir la position de l'item.
    Et là t'as plus qu'a changer le background.

    Par exemple dans le LinearLayout qui contiendras toutes tes views, tu utiliseras la méthode :
    http://developer.android.com/referen...ource%28int%29

    Déjà essaie de suivre ce tuto :
    http://mickael-lt.developpez.com/tut...iser-listview/

    Sauf que tu toi tu va devoir créer une liste d'Image.
    Et que tu n'utiliseras peut être pas une ListView, mais c'est quand même très similaire.

    Une fois que t'auras fais le tuto, il faudra que tu fasse une méthode qui te créer une liste de BitmapDrawable :
    http://developer.android.com/referen...pDrawable.html

    A partir des images contenu dans un dossier de ta carte SD.
    Après il faudra créer l'adapter et le listener, mais c'est assez simple.
    C'est comme dans le tuto.
    Keith Flint 1969 - 2019

  6. #6
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci beaucoup pour ta réponse très bien détaillée


    Petites précisions:

    1) il faut que je crée une liste de BitMap Drawable. Ce qui veut dire qu'ensuite j'utiliserai la fonction:
    public void setBackgroundDrawable (Drawable d)
    On est bien d'accord.

    2) Lorsque je récupère l'image je récupère une imageView. Comment la convertir en BitMap Drawable?

    3) Comment faire pour récupérer toutes les images du la carte? :s

  7. #7
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Euh pour la 2eme question j'ai trouvé

    réponse ici

  8. #8
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    En fait je me trompe peut être mais je pense que la seule méthode capable de dynamiquement changer le fond d'écran c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setBackgroundDrawable (Drawable d)
    Cette méthode doit recevoir un Drawable.

    Mais toi tu va récupérer des Bitmaps et il faudra les passer en Drawable apparemment c'est jouable avec BitmapDrawable.

    ImageView ça n'a rien a voir avec ton problème, toi ça va être des bitmaps.
    Où sont les images que tu veux ?

    Parce que ça je ne sais pas dans le détail comment récupérer tout les bitmaps d'un dossier.
    Mais ça ne devrait pas être trop compliqué. (il y a plein d'exemple pour lister tout les fichiers et sous dossiers d'un dossier)

    Tu peux faire ça :
    Lister tout les fichiers du dossier qui contient tes images.
    Après tu récupères les fichiers avec une bonne extension (png, jpeg, etc).
    A ce moment là t'auras les adresses des fichiers images, du coup ce sera quasiment fini.

    ====================
    Edit :
    Ouais c'est super simple regarde ça :
    http://www.exampledepot.com/egs/java.io/GetFiles.html

    Juste au début tu mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File dir = new File("/sdcard/download/");
    Et ça fonctionne, par contre ça ne parcours pas les sous dossiers, ça les listes juste.
    Keith Flint 1969 - 2019

  9. #9
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci beaucoup je pense que tu m'as donné assez d'indication pour pouvoir programmer mon appli. C'est cool

  10. #10
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    C'est encore moi!

    J'ai réussi à avancer sur l'application en revanche je n'arrive pas à lui dire de changer le fond d'ecran du telephone car lorsqu je fais getWindows() ceci me récupère la fenêtre courante et pas celle du téléphone.


    C'est tu sur quel élément je dois envoyer mon image pour changer le fond d'ecran?

  11. #11
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    AAAH !
    Tu veux changer le fond d'écran du téléphone et pas de l'application :
    http://d.android.com/reference/andro...hics.Bitmap%29

    Avant c'était setWallpaper (Bitmap bitmap) mais c'est deprecated alors utilise WallpaperManager.set().

    Mais bon tu feras jamais mieux que ce qu'Android propose déjà.
    Keith Flint 1969 - 2019

  12. #12
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci pour ta réponse! Cependant, il n'est pas possible de prendre un drawable stocké? comme pour le fond d'écran d'une application?

    Car la c'est du Bitmap!

    PS: Je ne compte pas faire mieux que eux mais un truc similaire pour un projet

  13. #13
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut
    C'est possible en utilisant BitmapDrawable et en faisant getBitmap (par contre faut faire attention, le drawable ne sera pas forcément un bitmapDrawable CastException).

    Sinon en utilisant la classe BitmapFactory, un truc du genre me semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.le_drawable);

  14. #14
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Cool!

    J'ai essayé ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                	WallpaperManager w = null;
                	Bitmap bitmap = BitmapFactory.decodeResource(getResources(), imageAdapter.getRessource(position));
                	try {
    					w.setBitmap(bitmap);
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    Mais ca m'arrête mon application!

    L'erreur LogCat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    06-06 09:00:50.631: ERROR/AndroidRuntime(282): FATAL EXCEPTION: main
    06-06 09:00:50.631: ERROR/AndroidRuntime(282): java.lang.NullPointerException
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at com.android.background.HelloGridView$1.onItemClick(HelloGridView.java:30)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at android.os.Handler.handleCallback(Handler.java:587)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at android.os.Handler.dispatchMessage(Handler.java:92)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at android.os.Looper.loop(Looper.java:123)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at java.lang.reflect.Method.invokeNative(Native Method)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at java.lang.reflect.Method.invoke(Method.java:521)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    06-06 09:00:50.631: ERROR/AndroidRuntime(282):     at dalvik.system.NativeStart.main(Native Method)

  15. #15
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Points : 203
    Points
    203
    Par défaut
    Sur le code ci-dessus la variable "w" est toujours nulle.

  16. #16
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Du coup que faut il que je mette pour l'initialiser à la place de null?

  17. #17
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Ça doit plus être un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);

    Ce lien peut t'être extrêmement utile :
    http://developer.android.com/resourc...rActivity.html
    Keith Flint 1969 - 2019

  18. #18
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    A d'accord! J'ai mis ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WallpaperManager w = WallpaperManager.getInstance(getApplicationContext());
    Cependant, il me dit que je n'ai pas les permissions pour modifier le fond d'ecran:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    06-06 09:10:04.650: ERROR/AndroidRuntime(339): java.lang.SecurityException: Access denied to process: 339, must have permission android.permission.SET_WALLPAPER
    donc j'ai rajouté ceci dans le manifest mais ca marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <permission android:name="SET_WALLPAPER" 
        	android:value="android.permission.SET_WALLPAPER"></permission>

  19. #19
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    C'est bon ca fonctionne tres bien.

    La syntaxe de la permission était la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>

    Merci beaucoup pour toutes vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [images] afficher une image en fond d'ecran
    Par soulhouf dans le forum Windows
    Réponses: 8
    Dernier message: 19/09/2005, 20h03
  2. Fond d'Ecran sur le ctrl+alt+suppr
    Par DonFelipe dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 19/09/2005, 17h09
  3. [images][C/C++] afficher une image en fond d'ecran
    Par soulhouf dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 19/09/2005, 12h54
  4. [Info]comment rafraichir mon fond d'ecran windows ?
    Par Invité dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 14/08/2005, 12h56
  5. Bsetbg pour mettre un fond d'écran sous fluxbox
    Par Francois Trazzi dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 06/06/2004, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo