Android App, die Bilder aus der Galerie auswählt und anzeigt

Dieser Artikel ist der 22. Tagesartikel von "Inobeko Sommerferien Adventskalender 2020", der von Fujitsu Systems Web Technology Co., Ltd. geplant wurde. (Versprechen) Der Inhalt dieses Artikels ist meine eigene Meinung und repräsentiert nicht die Organisation, zu der ich gehöre.

Einführung

Ich habe die Quelle geschrieben, um ein Bild auszuwählen und es in Andoroid Studio auf dem Bildschirm anzuzeigen. In diesem Artikel werden daher die Quelle, die Prozedur usw. vorgestellt.

Hintergrund

Beurteilen Sie anhand des vorherigen Artikels (Lebensmittelfotos mithilfe der Google Cloud Vision-API beurteilen) ausgewählte Fotos mit der API Ich entschied mich für eine App und als ersten Schritt schrieb ich einen Artikel über die Auswahl von Bildern aus der Galerie.

Vorbereitungen

In Bezug auf Folgendes, den Artikel am 16. Tag dieses Adventskalenders "Ich habe eine Android-Anwendung" Hello World "erstellt und versucht, damit frei zu spielen ) ”, Also beziehen Sie sich bitte darauf. Ich werde es hier weglassen.

・ Installation von Android Studio ・ Erstellen Sie ein neues Projekt -Erstelle und starte einen Emulator

Japanische Lokalisierung des Emulators

Wahrscheinlich ist es standardmäßig in Englisch, also werde ich es ins Japanische übersetzen. Zeigen Sie den Bildschirm [Einstellungen] auf dem Emulator an und wählen Sie [System] - [Sprachen & Eingabe] - [Sprachen]. Ich denke, dass nur Englisch angezeigt wird. Wenn Sie also Japanisch unter [Spracheinstellungen] auswählen, wird Japanisch unter Englisch angezeigt, sodass Sie die Reihenfolge durch Ziehen ändern können, um die japanische Lokalisierung abzuschließen.

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

Speichern Sie das Bild auf dem Emulator

Ermöglicht die Anzeige des Bildes auf dem Emulator zur Bildauswahl.

Es gibt zwei Methoden

Quelle

Drücken Sie die Taste, um die Galerie zu öffnen und das ausgewählte Bild auf dem Bildschirm anzuzeigen.

Galerie öffnen

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

Absicht (Art der Aktion, Ziel-App) startActivityForResult (Absicht, Anforderungscode) Sie können die Aktivität in einer anderen App mit der Intent-Klasse starten. Dieses Mal öffne ich die Galerie (Bilderliste) und erhalte das ausgewählte Bild.

Weitere Informationen zu Absichten finden Sie unter Allgemeine Absichten (https://developer.android.com/guide/components/intents-common?hl=ja).

Der im Argument angegebene Inhalt hat folgende Bedeutung. -Intent.ACTION_PICK: Aktion, die das ausgewählte Element aus den Daten zurückgibt -Media.EXTERNAL_CONTENT_URI: URI, von dem Bilddaten abgerufen werden können

Der im Parameter startActivityForResult angegebene Anforderungscode dient zum Bestimmen der Übergangsquelle. Hier wird 1 durch harte Codierung angegeben, aber ich denke, dass es besser ist, es mit Konstanten zu verwalten.

Auswahlergebnisse anzeigen

@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();
            }
      }
}

Die Methode "onActivityResult" empfängt das Ausführungsergebnis von "startActivityForResult" in der vorherigen Stufe. Setzt das ausgewählte Ergebnis auf die Bildansicht des Bildschirms.

Als Argument requestCode wird auch der in der Methode "startActivityForResult" angegebene Anforderungscode zurückgegeben. Wie im vorherigen Abschnitt erwähnt, kann die Übergangsquelle bestimmt werden, sodass Sie wie folgt schreiben können.

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) {
            //Verarbeitung für button1
      } else if (requestCode == 2) {
            //Verarbeitung für button2
      }
}

Bildschirm

Wenn die obigen Quellen auf dem Emulator ausgeführt wurden, wurde der ursprüngliche Zweck "Auswählen eines Bildes und Anzeigen auf dem Bildschirm" erreicht.

① Drücken Sie die Taste ② ③ Wählen Sie ein Bild aus ④ Zeigen Sie das ausgewählte Bild an

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

Schließlich

Ich habe Andoroid Studio zum ersten Mal verwendet, aber ich hatte keine großen Probleme, da die Quelle der Formularanwendung ähnlich war.

Beim nächsten Mal möchte ich versuchen, die Cloud Vision-API über die Andoroid-App aufzurufen.

Recommended Posts

Android App, die Bilder aus der Galerie auswählt und anzeigt
So schränken Sie das Bildformat in der Galerie unter Android ein und wählen und importieren Sie dann mehrere Bilder
[Android] Zeigen Sie Bilder und Zeichen auf der Registerkarte ViewPager an
[Android] Hochladen von Bildern vom Terminal auf den Server
Versuch und Irrtum, um nationale Feiertage in der Android-App-Entwicklung anzuzeigen. Teil 2
POST-Bilder von Android auf PHP mit Retrofit
Android App: Versuchen Sie, Ereignisse und Hörer zusammenzufassen
Lassen Sie das Armbandgerät mit Bluetooth über die Android-App vibrieren
Kotlin kann die Welt von der App ins Web bringen
So zeigen Sie das Auswahlfeld von time_select alle 30 Minuten an
Halten Sie das praktische Bild und das wesentliche Bild gedrückt, um TDD anzugehen
Java-Quellbeispiel für SELECT und Anzeige von CLOB (Oracle Database + Java)
So erstellen Sie ein Formular zur Auswahl eines Datums aus dem Kalender
Speichern und zeigen Sie mehrere Bilder an
[Android] Ändern Sie den App-Namen und das App-Symbol für jeden Geschmack
Senden Sie den Wert des Beschleunigungssensors per UDP von Android an den PC
Technische Ursachen und Gegenmaßnahmen für die Punkte, denen ich mit der ersten Android-App und Kotlin verfallen war
[Swift] So zeigen Sie an, wann die Quiz-App richtig antwortet [Anfänger]
[Android, Java] Methode zum Ermitteln des abgelaufenen Datums aus zwei Daten
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
Einführung in die Android App-Entwicklung 1 Installieren von JDK und Android Studio für Mac
[Android] Ich möchte den Listener über die Schaltfläche in ListView abrufen
Android-Entwicklung - Versuchen Sie, einen Dialog aufzurufen.
[Android] Snackbar von jeder Position aus anzeigen
Der Weg von JavaScript nach Java
Aktualisieren Sie JAVA auf die neueste Version auf 1.8.0_144 (beim Herunterladen aus dem Internet und Aktualisieren)
[Android] So aktivieren / deaktivieren Sie das Benachrichtigungsfeld mit StatusBarManager
Von der Einstellung der Firebase-Echtzeitdatenbank bis zur einfachen Dateneingabe (Android-App)
[Android] Übergeben von Bildern und Empfangen von Rückrufen beim Teilen mit ShareCompat
Bestätigung und Umgestaltung des Flusses von der Anfrage zum Controller in [httpclient]
Die Geschichte der ersten Veröffentlichung der Android-App im Play Store.
Versuch und Irrtum, um nationale Feiertage in der Android-App-Entwicklung anzuzeigen. Teil 1
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
Ist es möglich, die Bibliothek (aar) in die Android-Bibliothek (aar) zu stellen und zu verwenden?
Die Android App stürzt ab. Klicken Sie einfach auf eine Schaltfläche und es wird fallen.
Untersuchen Sie den Ersatz von Docker zu Podman.
Beispiel für die Anzeige von (Head-up-) Benachrichtigungen auf Android
[Ruby] Von den Grundlagen bis zur Injektionsmethode
* Android * Speichern / Laden von Bildern in einen externen Speicher
Wie man die Zehner und Einsen findet
Versuchen Sie es mit der Emotion API von Android
Vorverarbeitung zur Anzeige im Browser (Compiler)
Von Java nach C und von C nach Java in Android Studio
[Heroku-Bereitstellungsverfahren ③] Von der Ruby-Versionsspezifikation zur Bereitstellung und zum Zugriff auf die Anwendung (abgeschlossen)
Holen Sie sich Youtube-Videoinformationen mit Retrofit und behalten Sie sie in der Android-App.
[Java] Abrufen und Anzeigen des Datums 10 Tage später mithilfe der von Java 8 hinzugefügten Zeit-API.
[Java] Beispiel eines Programms, das die Maximal- und Minimalwerte von einem Array abruft
Android Development-WEB Access (POST) Versuchen Sie, mit der Außenwelt zu kommunizieren und Daten zu senden. ~
Wenn Sie Android Room verwenden und die Spaltendefinition ändern möchten
Versuchen Sie, über die SAP Cloud Platform - JAVA App Edition auf das On-Premise-System zuzugreifen
Ich mache eine Android-App und sie steckt voller Fehler und wie man sie löst
[JDBC ③] Ich habe versucht, mithilfe von Platzhaltern und Argumenten Eingaben über die Hauptmethode vorzunehmen.