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 :

PICASSO et affichage photo


Sujet :

Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut PICASSO et affichage photo
    Bonjour à tous!
    Je voudrai afficher via PICASSO des photos placées dans le répertoire /files de mon application.
    Ces photos sont appelées dans un ListView et un Adapter via leur chemin stockées dans une base de données.
    Actuellement mes données sont bien affichées dans le ListView mais pas la photo de chaque enregistrement.
    Code actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String photoS = String.valueOf(session.getPhoto());
                    ImageView photoS_BD =view.findViewById(R.id.iv_photoS);
                    Picasso.get()
                            .load(photoS)
                            .into(photoS_BD);
    photoS est la string retournée par ma requête SQL qui donne le chemin de la photo du type:
    /data/data/com.x.x/files/maphoto.jpg
    Est ce possible que PICASSO puisse afficher mes photos via leur chemin dans /files?
    Si oui, est ce que la string "/data/data/com.x.x/files/maphoto.jpg" est correcte pour Picasso.load("chemin") ?
    Merci à tous pour vos retour!

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Que dit le logcat ?

    As tu essayer avec un File plutôt que juste le chemin ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Picasso.with(context).load(new File(path)).into(imageView);
    Bref sans infos précises c'est délicat d'avoir des réponses ...
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    Bonjour grunk,
    Merci pour ta réponse!
    Je n'ai pas d’erreur au niveau du logcat, mais aucune photo ne s'affiche.
    J'utilise la version 2.71828.
    J'ai essayé avec ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .load(new File(photoS))
    mais toujours pas d'affichage.
    J'ai essayé:
    .log(String Path)
    .log(Fiile file)
    mais toujours pas d'affichage.
    Par contre aucun context n'est demandé avec .get(). Ni this, ni context . . .? Si je me met ma view en get, il me retourne une erreur.
    Je n'ai pas trouvé une explication des méthodes pour cette version de PICASSO!
    Merci pour ton retour!

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    Bonjour,
    voici la page concernant les methodes de PICASSO 2.xx pour ceux qui sont interressés.
    [URL="http://square.github.io/picasso/2.x/picasso/"/URL]

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Que de donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File f = new File(photoS)
    Log.d("TAG","FILE EXISTS = "+f.exists());
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    Bonjour grunk,
    voici le retour du logcat:
    07-24 14:18:14.283 23876-23876/com.applimoby.sessionscarnassiers D/TAG: FILE EXISTS = false
    HONTE SUR MOI!!
    L'index de mon cursor n'était pas le bon!
    Ceci étant, j'ai l'affichage des photos qui est assez aléatoire . . .
    Le l'ANDROID PROFILER m'indique déjà 420MB au niveau de la mémoire, en affichant les photos natives sur mon LG G4.
    Je les ai donc resizées par PICASSO à 50%.
    Affichage plus rapide mais perte de qualité . . . Je suis tombé à 136MB.
    Je poursuis mes recherches afin d'avoir un bon compromis entre rapidité et qualité d'affichage.
    Si entre temps tu avais une idée . . . .
    Merci pour ta réponse! Comme quoi, on ne vérifie jamais assez son code!

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Picasso gère normalement correctement la mémoire et fait du resampling.

    Combien essais tu d'afficher d'image ?

    Si c'est 400M pour une image il y'a effectivement un souçis , si c'est.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    Bon, je crois que je ne ferai pas mieux avec cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    photoP = String.valueOf(prise.getPhoto());
                photoP_BD =view.findViewById(R.id.iv_photoP);
                File f = new File(photoP);
                Picasso.get()
                        .load(f)
                        .fit()
                        .into(photoP_BD);
    Légère déformation de l'image
    Nom : Screenshot_2018-07-24-15-54-12.jpg
Affichages : 291
Taille : 238,6 Ko
    Si idée je suis preneur!

  9. #9
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Est ce que tu aurais pas intérêt à utiliser centerInside() ou centerCrop() plutôt que fit() ?
    fit() va faire un resize qui ne vas pas forcément conserver le ratio de l'image

    centerInside() garde l'aspect original de l'image , par contre l'imageview est pas forcément remplie.

    Pour finir note que si c'est ton application qui prend la photo , tu as sans doute intérêt à la redimensionner avant de l'enregistrer pour qu'elle soit le plus optimiser possible. Ca ne sert à rien d'enregistrer une image de 3000x4000 si elle s'affiche au final en 300x400.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    Bonjour grunk,
    la résolution des photos sur le LGG4 est de 5312x2988.
    Si je modifie le code avec .centerInside() ou .centerCrop(), l'appli plante et rien dans le logcat . . .
    Je trouve que depuis la version 3.1.3, le recueil des logcat se fait difficilement . . .Qu'en penses tu?
    Ta réflexion sur la taille des photos est juste! Je vais les redimensionner juste avant l'affichage dans ma listview.
    Merci pour ton retour! Je te souhaite une bonne journée!

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Le logcat n'est pas plus difficile à utiliser. Peut être n'utilise tu juste pas les bon filtres d'affichage.
    Une appli qui plante laisse forcément une trace.

    Ta réflexion sur la taille des photos est juste! Je vais les redimensionner juste avant l'affichage dans ma listview.
    Ca serait plus judicieux de la redimensionner avant l'enregistrement. Tu économiserais de l'espace de stockage à tes utilisateurs (sous réserve que ce soit ton appli qui prenne la photo).
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    En jouant sur le XML de ImageView, le résultat est pas trop mal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <ImageView
            android:id="@+id/iv_photoS"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_below="@+id/l_info"
            android:adjustViewBounds="true"
            android:maxWidth="532dp"
            android:maxHeight="299dp"
            android:scaleType="fitCenter"
            android:layout_marginEnd="6dp"
            android:layout_marginStart="6dp"
            android:layout_marginTop="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/l_info"
            tools:ignore="ContentDescription" />
    J'ai pris comme valeur max le 1/10 de la résolution de la photo native.
    Je n'ai plus la déformation d'avant.Par contre, j'ai 2 listview qui doivent afficher des photos. La première est fait avec un ConstraintLayout et la deuxième avec un RelativeLayout. Je trouve que celle avec un ConstraintLayout s'affiche plus rapidement que celle avec un RelativeLayout . . Est ce logique? Si oui je passe tout en ConstraintLayout.
    Merci pour ton retour grunk!!!!

  13. #13
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    C'est normal dans le sens ou avec un ConstraintLayout tu dois avoir une hierarchie de vue beaucoup plus "plate" avec moins de layout imbriqué. Ce qui est inévitablement plus rapide qu'un ensemble de layout imbriqué .

    Cf : https://android-developers.googleblo...nefits-of.html pour des explications un peu plus poussées
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    Bonjour grunk,
    Nom : Capture.PNG
Affichages : 295
Taille : 32,3 Ko
    j'ai voulu transformer mon RelativeLayout en Constraint. Le résultat a été catastrophique!
    Comme tu peux le voir, j'affichage11 x 3 widgets + la photo, le tout avec un scroll.
    Je suis donc repasser en Relativelayout.
    Est ce trop au niveau de l'affichage Constraint?
    Est ce que ma rangée de 3 doit être dans un LinearLayout?
    De plus, j'ai perdu une dizaine d'id des widgets.
    Synchro + build + InvalidateCaches/Restart . . . Rien n'y fait!
    Je continue mes recherches.
    Bonne fin de journée!

  15. #15
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Non ce n'est pas trop pour un constraint layout.
    Mais de ce que tu montre il ne semble pas y'avoir de contrainte entre tous tes layout d'où sans doute les problèmes que tu rencontre.

    Après sur une UI aussi simple que celle là , tu verras pas de différence de perf entre un contraintLayout ou un relativeLayout , fait en fonction de ce que tu maîtrise le plus.

    Note si tu as des problème de layout ouvre une autre discussion et passe celle ci en résolu. On dérive du sujet inital.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 110
    Par défaut
    Bonsoir grunk,
    Tu as raison! Le problème de base PICASSO est réglé!
    Merci dans tous les cas pour tes conseils!
    Je met en résolu la discussion.

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

Discussions similaires

  1. [MySQL] Affichage photo - lenteur
    Par hel22 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/09/2006, 18h13
  2. affichage photo avec chemin d'accès
    Par julio02200 dans le forum Access
    Réponses: 7
    Dernier message: 21/06/2006, 16h10
  3. [Configuration] probleme avec affichage photo
    Par arti2004 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 17/06/2006, 23h23
  4. Affichage photo répertoire
    Par le69 dans le forum Langage
    Réponses: 11
    Dernier message: 19/04/2006, 20h40
  5. [FLASH 8] Pbm affichage photos
    Par fab22montpellier dans le forum Flash
    Réponses: 1
    Dernier message: 30/11/2005, 11h42

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