Android -, ein Bild-Ressource in Uri: IllegalArgumentException
Ich versuche, ein Bild zu laden, die aus der resource in meiner Android app, aber ich bekomme immer "IllegalArgumentException: Expected file-Schema in URI" Fehler.
Ich mein 'missing_album_art.png' - Datei in drawable-hdpi, drawable-ldpi und drawable-mdpi Ordner in meinem Projekt und erfrischt Eclipse, so dass es zeigt, dass Sie da sind.
Die Zeile ich bin mit, um die Uri ist:
Uri uri = Uri.parse("android.resource://android.aberplayer/R.drawable.missing_album_art");
'Android.aberplayer' ist das wichtigste Paket von meiner Bewerbung und auch mit der Klasse, in der ich die obige Zeile.
Die Fehler ich erhalte, ist:
03-16 00:16:29.252: E/AndroidRuntime(25598): FATAL EXCEPTION: main
03-16 00:16:29.252: E/AndroidRuntime(25598): java.lang.IllegalArgumentException: Expected file scheme in URI: android.resource://src.android.aberplayer/R.drawable.missing_album_art
03-16 00:16:29.252: E/AndroidRuntime(25598): at java.io.File.checkURI(File.java:245)
03-16 00:16:29.252: E/AndroidRuntime(25598): at java.io.File.<init>(File.java:182)
03-16 00:16:29.252: E/AndroidRuntime(25598): at android.aberplayer.CurrentSongList.getCurrentAlbumArt(CurrentSongList.java:69)
Gibt es etwas, was ich gar nicht nachvollziehen kann, Zugriff auf die Bild-Ressourcen in Android-Anwendungen?
InformationsquelleAutor JakeP | 2012-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die image-Datei in
assets
Ordner, der folgende code kann verwendet werden, um dieUri
-Beachten Sie, dass
Uri.parse
ist für immerUri
aus einem stringUrl
nicht aus einer Ressource direkt. Es gibt andere, sauberere Lösung, aber ich konnte mich nicht erinnern, Sie. Ich werde den Beitrag aktualisieren, wenn ich Sie gefunden.Edit:
Die String-Uri-Pfad sollte im folgenden format, wenn Sie möchten, verwenden Sie die Ressource direkt:-
Überprüfen in diesem post.
ContentResolver.SCHEME_ANDROID_RESOURCE
InformationsquelleAutor noob
Den Ressourcen zugeordnet bekommen zu zahlen. Möchten Sie den integer-Wert von R. drawable.missing_album_art, dann fügen Sie, dass für den rest Ihres Pfad-string. d.h.,
...das ist, wenn Sie wirklich brauchen, die Uri. In der Regel können Sie nur ein Bild verwenden, Hilfsmittel wie diese:
Wenn Sie wollen Lesen Sie eine Ressource in eine Datei, im folgenden wird ein Weg, es zu tun (dies schreibt eine Datei in das Verzeichnis der Anwendung (D. H. /data/data/packagename) mit dem Namen "filename"):
java.lang.IllegalArgumentException: Expected file scheme in URI: android.resource://src.android.aberplayer/2130837505
Ist es möglich, dass es ein problem, weil ich versuche, die oben genannten Uri.analysieren Linie in eine andere Klasse als eine Aktivität? Wenn ich es in die Aktivität, die angezeigt werden sollen, die Bild, es hat funktioniert. Jedoch, wenn ich versuche, es in eine andere Klasse, die nicht erweitert oder implementiert keine Android-Klassen, führt zu einem Fehler. Können Sie erklären, dies für mich bitte? (Brauchen Sie, um zu sehen, beliebigen code?)
hmm. Um ehrlich zu sein bin ich nicht sicher. Ich hab das Gefühl der Fehler kommt nicht von dieser
Uri.parse
Linie. Vielleicht noch mehr posten Kontext/lines of code. Warum sind Sie mit einem Uri/wie verwendest du es?sah gerade deinen Kommentar unten, dass der Fehler kommt tatsächlich aus
currentAlbumArt = new File(new URI(uri.toString()));
modifiziert Antwort mit einer Methode für das schreiben einer Ressource in eine Datei. Noch nicht sicher, ob das, was Sie suchen.InformationsquelleAutor Jonathan Fretheim
Versuchen, diese stattdessen
currentAlbumArt = new File(new URI(uri.toString()));
InformationsquelleAutor LuizAurio