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 :

Afficher toutes les images de la gallery


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Par défaut Afficher toutes les images de la gallery
    bonsoir, je suis un nouveau dans la programmation android et besoin d'afficher toutes les images du telephone dans mon application avec recyclerView

    --Adapter
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageHolder> {
     
        private Context context;
        private List<Images> list;
     
        public ImageAdapter(Context context, List<Images> list) {
            this.context = context;
            this.list = list;
        }
     
        @Override
        public ImageAdapter.ImageHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.image_recycler,parent,false);
            return new ImageHolder(view);
        }
     
        @Override
        public void onBindViewHolder(ImageAdapter.ImageHolder holder, int position) {
                Images images = list.get(position);
     
            String data = images.getData();
            Uri dataUri = Uri.parse("file://" + data);
            try {
                Bitmap bitmap = Glide.with(context)
                          .load(dataUri)
                          .asBitmap()
                          .into(100,100)
                          .get();
                if (bitmap != null) {
                    holder.imageView.setImageBitmap(bitmap);
                }else {
                    Toast.makeText(context,"vide",Toast.LENGTH_LONG).show();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
     
        }
     
        @Override
        public int getItemCount() {
            return list.size();
        }
     
        public class ImageHolder extends RecyclerView.ViewHolder{
            public ImageView imageView;
            public ImageHolder(View itemView) {
                super(itemView);
     
                imageView = itemView.findViewById(R.id.imageView);
            }
        }
    }
    --ImageClass

    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
    17
    18
    19
    20
    21
     
    public class Images {
     
        private String data;
     
     
        public Images() {
        }
     
        public Images(String data) {
            this.data = data;
        }
     
        public String getData() {
            return data;
        }
     
        public void setData(String data) {
            this.data = data;
        }
    }
    ---MainActivity
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    public class MainActivity extends AppCompatActivity {
     
        private static final int MY_READ_PERMISSION = 123;
        private List<Images> listImages = new ArrayList<>();
        RecyclerView recyclerView;
        RecyclerView.Adapter adapter;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
            recyclerView.setLayoutManager(new GridLayoutManager(this,3));
        }
     
        public ArrayList<Images> getImages()  {
            ArrayList<Images> imageArrayList = new ArrayList<>();
            Cursor cursor = null;
            try {
                 cursor = this.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
                int dataIndex  = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                do {
     
                    Images img = new Images();
                    String dataString = cursor.getString(dataIndex);
     
                    img.setData(dataString);
                    imageArrayList.add(img);
                }while (cursor.moveToNext());
     
            }catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (cursor != null) {
                    cursor.close();
                }
            }
            // Close the curosor
            cursor.close();
            return imageArrayList;
        }
     
        public  void showImage() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_READ_PERMISSION);
                //After this point you wait for callback in onRequestPermissionsResult(int, String[], int[]) overriden method
     
            } else {
                listImages = getImages();
                adapter = new ImageAdapter(this,listImages);
                recyclerView.setAdapter(adapter);
     
            }
        }
        @Override
        public void onRequestPermissionsResult(int requestCode, String[] permissions,
                                               int[] grantResults) {
            if (requestCode == MY_READ_PERMISSION) {
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    // Permission accordée
                    showImage();
                } else {
                    Toast.makeText(this, "Permission non accordée", Toast.LENGTH_LONG).show();
                }
            }
        }
    }

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Et quel est ton souci ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Par défaut
    Citation Envoyé par Hizin Voir le message
    Et quel est ton souci ?
    Je veux afficher toutes les images du téléphone dans mon application.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Ca, j'ai bien compris, mais quel est ton problème ?
    Pourquoi n'y arrives-tu pas ? Qu'as-tu essayé ? Qu'est-ce qui pose problème ?

    Nous ne sommes pas là pour faire ton travail à ta place, mais pour aider à résoudre des problèmes ciblés ainsi que guider des développements. Sans information, rien n'est possible.
    Je ne lis pas de code sans avoir le contexte de celui-ci.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

Discussions similaires

  1. Afficher toutes les images liées à un enregistrement
    Par pluche52 dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/03/2016, 12h58
  2. Parcourir dossier pour afficher toutes les image
    Par Antri dans le forum ASP.NET
    Réponses: 3
    Dernier message: 29/10/2011, 17h06
  3. Réponses: 2
    Dernier message: 23/12/2009, 12h05
  4. afficher toutes les images en meme temps
    Par dietrich dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/04/2006, 12h18

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