Android anzeigen Bild von Pfad
Frage
ich will Bild in Imageview zeigen, ohne ID.
i werden alle Bilder im RAW-Ordner speichern und öffnen
try {
String ss = "res/raw/images/inrax/3150-MCM.jpg";
in = new FileInputStream(ss);
buf = new BufferedInputStream(in);
Bitmap bMap = BitmapFactory.decodeStream(buf);
image.setImageBitmap(bMap);
if (in != null) {
in.close();
}
if (buf != null) {
buf.close();
}
} catch (Exception e) {
Log.e("Error reading file", e.toString());
}
aber dies nicht funktioniert, i für den Zugriff Bild will mit ihrem Pfad nicht mit Namen
Lösung 3
try {
// Holen Bezug auf Assetmanager
Assetmanager mngr = getAssets ();
// Create an input stream to read from the asset folder
InputStream ins = mngr.open(imdir);
// Convert the input stream into a bitmap
img = BitmapFactory.decodeStream(ins);
} catch (final IOException e) {
e.printStackTrace();
}
hier Bildverzeichnis ist Pfad von Vermögenswerten
wie
assest -> Bild -> somefolder -> some.jpg
dann Pfad
image / somefolder / some.jpg
jetzt keine Notwendigkeit der Ressource-ID für Bild, können Sie Bild zur Laufzeit mit diesem
bevölAndere Tipps
las einen Strom von Bytes openRawResource ()
soetwas wie dies sollte funktionieren
InputStream is = context.getResources().openRawResource(R.raw.urfilename);
Überprüfen Sie diesen Link
http://developer.android.com/guide /topics/resources/accessing-resources.html#ResourcesFromCode
Er sagt klar die folgende
Während ungewöhnlich, könnten Sie benötigen, um Ihre ursprünglichen Dateien und Verzeichnisse zugreifen. Wenn Sie das tun, dann Ihre Dateien in res Speicher / nicht für Sie arbeiten, weil der einzige Weg, um eine Ressource von res zu lesen / ist mit der Ressource-ID
Wenn Sie einen Dateinamen wie die in ur-Code erwähnt geben, haben Sie wahrscheinlich auf Vermögenswerte Ordner speichern müssen.
Möglicherweise können Sie Resources.getIdentifier(name, type, package)
mit Raw-Dateien verwenden. Das wird die ID für Sie erhalten und dann können Sie einfach weiter mit setImageResource (id) oder was auch immer.
int id = getResources().getIdentifier("3150-MCM", "raw", getPackageName());
if (id != 0) //if it's zero then its not valid
image.setImageResource(id);
ist das, was Sie wollen? Es ist vielleicht nicht wie die mehrere Ordner zwar, aber einen Versuch wert.