Android: Zugriff auf Bilder von Assets / Zeichnungsordnern

Die App, an der ich gerade arbeite, hat Hunderte von Bildern. Im Moment habe ich sie im Ordner 'Drawable' gespeichert. Ich dachte daran, alle in den Assets-Ordner zu bewegen.

Meine Frage ist: Gibt es einen Unterschied in der Leistung bei der Verwendung von beiden Ansätzen?

  • Android Emulator Spams Logcat mit "Service com.android.exchange.ExchangeService hat ServiceConnection ... das war ursprünglich hier gebunden
  • Die Kamera-Vorschau friert nach der Bildschirmsperre ein
  • Keine ActionBar in PreferenceActivity nach dem Upgrade auf Support Library v21
  • Android-Jack-Toolchain erkennt nicht java.util.function.Predicate im Stream
  • Überprüfen Sie die Lautstärketaste, wenn der Bildschirm ausgeschaltet ist
  • Kann nicht Androide "Gen" Ordner zu Git
  • Erlaube die Benachrichtigung nach dem Aufruf von stopForeground (false)
  • Android / Java: Sichern eines Byte-Arrays in eine Datei (.jpeg)
  • Android - Bestätigen Sie die App mit Toast
  • Wie bekomme ich die Beschreibung aus dem Diagramm in MPAndroidChart?
  • Wie füge man die Bildansicht auf der rechten Seite der Aktionsleiste hinzu?
  • Android GCM ID generiert Rückkehr "MESSENGER" in einigen Fällen während funktioniert gut in den meisten Fällen. Kann keine Ursache finden
  • 4 Solutions collect form web for “Android: Zugriff auf Bilder von Assets / Zeichnungsordnern”

    Ich glaube nicht, dass es einen kleinen Unterschied in der Leistung der Verwendung dieser beiden Ordner , ich denke, mit ziehbaren Ordner können Sie leicht Bilder (Alle werden in der R-Datei indiziert werden, was macht es viel schneller (und viel einfacher!) Zu Lade sie.), Und wenn du es von Asset verwenden AssetManager dann AssetFileDescriptor du AssetManager dann mit AssetFileDescriptor musst du diese Bilder bekommen.

    • Assets können auch in einer Ordnerhierarchie organisiert werden, die nicht von Ressourcen unterstützt wird. Es ist eine andere Art, Daten zu verwalten. Obwohl die Ressourcen die meisten Fälle abdecken, haben die Vermögenswerte ihren gelegentlichen Gebrauch.

    • Im res/drawable Verzeichnis wird jede Datei mit einer vorkompilierten ID versehen, auf die einfach durch R.id. [res id] zugegriffen werden kann. Dies ist nützlich, um schnell und einfach auf Bilder, Sounds, Icons zuzugreifen …

    Soweit ich weiß, sollte es keinen großen Unterschied geben, aber ich würde lieber mit Drawable gehen.

    Drawable gibt Ihnen, neben Indizierung, Option, mit Screen Dichte Fragmentierung zu kämpfen und Vermögenswerte sollten nicht von der Dichte abhängen. Mit großen Bildern auf kleineren Bildschirmen und / oder unteren Spezifikation Telefone (RAM, CPU) kann dazu führen, dass echte Schwierigkeiten und beeinflussen Usability und App-Ansprechempfindlichkeit.

    Ich denke, dass der Hauptunterschied zwischen diesen beiden ist, dass Zeichnungsordner indiziert ist und Sie können die Nutzung der Android Alternative Ressourcen laden … Also ich denke, dass es keinen Unterschied der Leistung zwischen diesen Ressourcen-Ordner.

    Eigentlich habe ich auch die Probleme getroffen. Ich möchte, dass meine App ImageView Image von Assets / statt res / drawables geladen ist, so dass ich meine APP aus dem Internet dynamisch aktualisieren kann.

    Von meinem Test / Gefühl die Leistung ist wahrscheinlich sehr unterschiedlich, wenn Sie nicht darauf achten.

      //v.setImageBitmap(ImageUtil.getBitmapFromAsset(this, "data/dog/dog_0001.png", 60, 60)); //v.setImageDrawable(ImageUtil.getDrawableFromAsset(this, "data/dog/dog_0001.png")); v.setImageResource(R.drawable.dog_0001); 

    Meine app wird oben in Activity's onCreate tun. Es scheint, dass setImageResource am schnellsten ist.

    Der Grund von meinem Punkt ist, dass die Decodierung von Asset wird Zeit nehmen, die UI-Thread blockieren wird, während die Ressource-ID ist schneller als die Decodierung gesetzt. Ich habe den Code in setImageResource gesehen, der auch das Bild lädt. Ich bin mir nicht sicher, warum meine Decodierung langsamer als setImageResource ist. Aber ich fühle setImageResource ist am schnellsten. Ich versuche, die Decodierung asynchron zu dekodieren und dann Bitmap setzen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.