2017-10-26 2 views
1

Ich benutze die Camera Roll-Bibliothek, die mit nativen Reagieren kommt, um ein Raster aller lokalen Bilder eines Benutzers zu laden. Der API-Aufruf ist jedoch langsam, um nicht nur die lokalen Daten zu erfassen (ein paar hundert Bilder einzufangen), sondern auch die Bilder langsam zu rendern.Reagieren native Rendering-Kamera Rollenbilder effizient

Ich frage mich, wie Apps wie Fotos und Instagram sind in der Lage, Ihre Bibliothek so schnell zu ziehen und sie alle sofort zur gleichen Zeit zu rendern, und wenn es möglich ist, mit nativen reagieren noch ... Scheint wie ein einfacher Anwendungsfall.

Ich möchte in der Lage sein, eine niedrigere Qualität dieser Kamera-Rollbilder zu verwenden, aber die Kamerarolle scheint mir nur die vollen Bilder zu geben.

+0

Konfrontiert mit dem gleichen Problem, so wechselte ich zu nativen, wo Sie die Sammlung anzeigen vorwärmen können. So machen Apps das schnell. Plus NsCacheImageManager. – agibson007

Antwort

0

Wie erhalten Sie die Fotos? Ich habe diese API schon viel selbst benutzt, also kommt das nicht aus Erfahrung, aber ich habe mir die CameraRoll Docs angesehen und es scheint, als ob der richtige Ansatz darin besteht, die Anzahl der abgerufenen Fotos auf die Zahl zu beschränken, die man anzeigen kann voll auf einem Bildschirm (plus/minus einem Puffer)

getPhotos({first: 20}) // retrieve the first 20 photos 

Von dort eine Windowing-Technik verwenden, wenn Sie mehr zu holen sind scrollen. Sie können mehr über Fensterung von Michael Jackson's Talk on Windowing (and more)

lernen So würde ich versuchen, das Problem anzugehen. Viel Glück!