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

War es hilfreich?

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öl

Andere 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top