2016-05-13 12 views
-5

Ich bin wirklich neu in Android-Codierung, also bitte nicht mich anschreien>. <Kann Bild in Android App nicht laden

Ich folge einem Online-Leitfaden, der mir erklärt, wie man ein Android-Spiel programmiert. Obwohl ich beim Laden von Bildern feststecke, kann ich es einfach nicht richtig machen.

Ich benutze IntelliJ Idee als meine IDE. Folders Layout

ich eine sehr hässliche Chaos zog auf Paint und fügte hinzu, es in die Verzeichnisse this guide mit: Die Art und Weise alle Verzeichnisse standardmäßig sortiert sind, können in der folgenden Abbildung zu sehen. Es hat etwas mit meinem Bild gemacht und eine menu.png Datei in jedes Verzeichnis hinzugefügt.

Im Code, ich versuche, das Bild mit dem AssetManager mit der .open() -Methode mit der Zeichenfolge "menu.png" zu laden (Der AssetManager wird von der Hauptaktivität mit der getAssets() -Methode abgerufen) . Ich erhalte jedoch weiterhin eine IO-Ausnahme, und ich habe keine Ahnung, wie ich das beheben kann. Ich habe mehrere Online-Guides angeschaut, aber das kann ich immer noch nicht machen. Hilf mir bitte!

P.S. Ich bin kein Muttersprachler, tut mir so leid für mein Englisch. Danke an alle und einen schönen Tag!

+1

IT ist keine humanistische Wissenschaft. Du sprichst nicht, was du programmierst. Du zeigst deinen Code. Wir können es lesen. –

+0

Es gibt jedoch nicht viel zu zeigen. Relevant ist nur die Verwendung von assets.open ("menu.png"); wo assets ist der AssetManager, der von getAssets() für das Hauptereignis abgerufen wird. Ich erhalte eine IO-Ausnahme. Die Sache ist, ich bin mir nicht sicher, wo/wie ich mein Menübild setzen soll. – yarinch

+1

lesen Sie das Dokument: https://developer.android.com/tools/projects/index.html – njzk2

Antwort

1

Um ein Bild zu laden, müssen Sie einen Android-Intent verwenden, der Sie zur Standard-Image-Loader-App (vom Telefonhersteller angegeben) bringt.

Zuerst erstellen Sie die Absicht. Dies sollte sein, wenn der Benutzer auf eine Schaltfläche oder ein ähnliches Ereignis klickt.
// Creates an Intent to pick a photo Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); ausführen dann die Absicht:
// ARGS: the intent, a key to access later startActivityForResult(i, 1);

Sie müssen jetzt setzen ein onActivityResult(int requestCode, int resultCode, Intent data) (detaillierte Anweisungen zur Verfügung here). Hier ist ein Beispielcode:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1 && resultCode == RESULT_OK && data != null) { 
     Uri selectedImage = data.getData(); 
     try { 
      // Do whatever you want with this bitmap (image) 
      Bitmap bitmapImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage); 
      Log.i("Image Path", selectedImage.getPath()); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Das ist es! Mach was du willst mit der erstellten Bitmap. Denken Sie daran, diese Methode geht direkt in Ihre Klasse.

+0

Vielen Dank! Für die ganze Zeit investierst du und deine Hilfe! :) – yarinch

+0

Kein Problem, froh, dass es geholfen hat! – AkashBhave

Verwandte Themen