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.
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.
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.
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
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.
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.
Appuyez sur le bouton pour ouvrir la galerie et afficher l'image sélectionnée à l'écran.
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.
@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
}
}
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
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.