Application Android qui sélectionne et affiche des images de la galerie

Cet article est l'article du 22ème jour du "Calendrier de l'Avent des vacances d'été Inobeko 2020" prévu par Fujitsu Systems Web Technology Co., Ltd. (Promesse) Le contenu de cet article est ma propre opinion et ne représente pas l'organisation à laquelle j'appartiens.

introduction

J'ai écrit la source pour sélectionner une image et l'afficher à l'écran dans Andoroid Studio, donc cet article présentera la source, la procédure, etc.

Contexte

Sur la base de l'article précédent (Juger des photos culinaires à l'aide de l'API Google Cloud Vision), évaluez les photos sélectionnées avec l'API J'ai décidé de créer une application et, dans un premier temps, j'ai fait un article sur la sélection d'images dans la galerie.

Préparation préalable

Concernant ce qui suit, l'article sur le 16e jour de ce calendrier de l'Avent "J'ai créé une application Android" Hello World "et j'ai joué avec librement ) », Veuillez donc vous y référer. Je vais l'omettre ici.

・ Installation d'Android Studio ・ Créer un nouveau projet -Créer et démarrer un émulateur

Localisation japonaise de l'émulateur

Il est probablement en anglais par défaut, je vais donc le traduire en japonais. Affichez l'écran [Paramètres] sur l'émulateur et sélectionnez [Système] - [Langues et saisie] - [Langues]. Je pense que seul l'anglais est affiché, donc si vous sélectionnez le japonais dans [Préférences de langue], le japonais sera affiché sous anglais, vous pouvez donc changer l'ordre en faisant glisser pour terminer la localisation japonaise.

エミュレーター_日本語化.PNG

Enregistrez l'image sur l'émulateur

Permet à l'image d'être visualisée sur l'émulateur pour la sélection d'image.

Il existe deux méthodes -Faites glisser et déposez l'image dans l'émulateur L'image sera dans le dossier DownLoad. -Télécharger avec Device File Explorer Ouvrez-le avec [View] - [Tool Windows] - [Device File Explorer]. Vous pouvez ajouter des fichiers en cliquant avec le bouton droit dans n'importe quel dossier.

La source

Appuyez sur le bouton pour ouvrir la galerie et afficher l'image sélectionnée à l'écran.

Galerie ouverte

Intent intent = new Intent(Intent.ACTION_PICK, Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);

Intention (type d'action, application cible) '' startActivityForResult (intention, code de demande) '' Vous pouvez démarrer l'activité dans une autre application avec la classe Intent. Cette fois, j'ouvre la galerie (liste d'images) et récupère l'image sélectionnée.

Pour plus d'informations sur les intentions, consultez les intentions générales (https://developer.android.com/guide/components/intents-common?hl=ja).

Le contenu spécifié dans l'argument a les significations suivantes. -Intent.ACTION_PICK: Action qui renvoie l'élément sélectionné à partir des données -Media.EXTERNAL_CONTENT_URI: URI à partir de laquelle les données d'image peuvent être obtenues

Le code de demande spécifié dans le paramètre startActivityForResult sert à déterminer la source de la transition. Ici, 1 est spécifié par un codage en dur, mais je pense qu'il vaut mieux le gérer avec des constantes.

Afficher les résultats de la sélection

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);

      if (requestCode == 1 && resultCode == RESULT_OK && null != data) {
            ImageView imgView = findViewById(R.id.imageView);
            BufferedInputStream inputStream = null;
            try {
                inputStream = new BufferedInputStream
                             (getContentResolver().openInputStream(data.getData()));
                imgView.setImageBitmap(BitmapFactory.decodeStream(inputStream));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
      }
}

La méthode "onActivityResult" reçoit le résultat de l'exécution de "startActivityForResult" à l'étape précédente. Définit le résultat sélectionné sur ImageView de l'écran.

En outre, le code de requête spécifié dans la méthode "startActivityForResult" est renvoyé en tant qu'argument requestCode. Comme mentionné dans la section précédente, la source de la transition peut être déterminée, vous pouvez donc écrire comme suit.

public void button1_onClick(View view) {
      Intent intent = new Intent(Intent.ACTION_PICK, Media.INTERNAL_CONTENT_URI);
      startActivityForResult(intent, 1);
}

public void button2_onClick(View view) {
      Intent intent = new Intent(Intent.ACTION_PICK, Media.INTERNAL_CONTENT_URI);
      startActivityForResult(intent, 2);
}
    
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);

      if (requestCode == 1) {
            //Traitement du bouton1
      } else if (requestCode == 2) {
            //Traitement pour bouton2
      }
}

écran

Lorsque les sources ci-dessus ont été exécutées sur l'émulateur, le but initial de "sélectionner une image et de l'afficher sur l'écran" a été atteint.

① Appuyez sur le bouton ② ③ Sélectionnez une image ④ Afficher l'image sélectionnée

image.png image.png image.png image.png

finalement

J'ai utilisé Andoroid Studio pour la première fois, mais je n'ai pas eu beaucoup de problèmes car la source était similaire à l'application Form.

La prochaine fois, j'aimerais essayer d'appeler l'API Cloud Vision depuis l'application Andoroid.

Recommended Posts

Application Android qui sélectionne et affiche des images de la galerie
Comment affiner le format d'image de la galerie sur Android, puis sélectionner et importer plusieurs images
[Android] Afficher les images et les caractères dans l'onglet ViewPager
[Android] Téléchargement d'images du terminal vers le serveur
Essai et erreur pour afficher les jours fériés dans le développement d'applications Android. Partie 2
POST des images d'Android vers PHP en utilisant Retrofit
Application Android: essayez de résumer les événements et les auditeurs
Faire vibrer le bracelet avec Bluetooth à partir de l'application Android
Kotlin peut faire passer le monde de l'application au Web
Comment afficher le champ de sélection de time_select toutes les 30 minutes
Maintenez l'image pratique et l'image essentielle pour lutter contre le TDD
Exemple de source Java pour SELECT et afficher CLOB (Oracle Database + java)
Comment créer un formulaire pour sélectionner une date dans le calendrier
Enregistrer et afficher plusieurs images
[Android] Modifiez le nom de l'application et l'icône de l'application pour chaque saveur
Envoyer la valeur du capteur d'accélération d'Android au PC par UDP
Causes techniques et contre-mesures pour les points auxquels j'étais accro avec la première application Android et Kotlin
[Swift] Comment afficher lorsque l'application quiz répond correctement [Débutant]
[Android, Java] Méthode pour trouver la date écoulée à partir de deux dates
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
[Java] Comment convertir du type String en type Path et obtenir le chemin
Introduction au développement d'applications Android 1 Installation de JDK et d'Android Studio pour mac
[Android] Je souhaite obtenir l'auditeur à partir du bouton de ListView
Développement Android-Essayez d'afficher une boîte de dialogue-
[Android] Affichez le snack-bar de n'importe quelle position
La route de JavaScript à Java
Mettez à jour JAVA vers la dernière version vers 1.8.0_144 (lors du téléchargement à partir du Web et de la mise à jour)
[Android] Comment activer / désactiver le panneau de notification à l'aide de StatusBarManager
De la configuration de Firebase Realtime Database à la simple saisie de données (application Android)
[Android] Comment transmettre des images et recevoir des rappels lors du partage à l'aide de ShareCompat
Confirmation et refactoring du flux de la requête au contrôleur dans [httpclient]
L'histoire de la sortie de l'application Android sur le Play Store pour la première fois.
Essai et erreur pour afficher les jours fériés dans le développement d'applications Android. Partie 1
J'ai essayé de traduire la grammaire de R et Java [Mis à jour de temps en temps]
Est-il possible de mettre la bibliothèque (aar) dans la bibliothèque Android (aar) et de l'utiliser?
L'application Android plante. Cliquez simplement sur un bouton et il tombera.
Examinez le remplacement de Docker vers Podman.
Exemple d'affichage des notifications (tête haute) sur Android
[Ruby] Des bases à la méthode inject
* Android * Enregistrement / chargement d'images sur un stockage externe
Comment trouver les dizaines et les unités
Essayez d'utiliser l'API Emotion d'Android
Pré-traitement à afficher sur le navigateur (compilateur)
De Java à C et de C à Java dans Android Studio
[procédure de déploiement heroku ③] De la spécification de la version de Ruby au déploiement et accès à l'application (terminé)
Obtenez des informations vidéo YouTube avec Retrofit et conservez-les dans l'application Android.
[Java] Obtenez et affichez la date 10 jours plus tard à l'aide de l'API Time ajoutée à partir de Java 8.
[Java] Exemple de programme qui acquiert les valeurs maximum et minimum d'un tableau
Développement Android-Accès WEB (POST) Essayez de communiquer avec l'extérieur et d'envoyer des données. ~
Si vous utilisez Android Room et que vous souhaitez modifier la définition de colonne
Essayez d'accéder au système sur site à partir de SAP Cloud Platform --JAVA App Edition
Je crée une application Android et elle est bloquée par des erreurs et comment la résoudre
[JDBC ③] J'ai essayé d'entrer à partir de la méthode principale en utilisant des espaces réservés et des arguments.