Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Android FotoOrdner selber aufrufen (https://www.delphipraxis.net/199577-android-fotoordner-selber-aufrufen.html)

paul.kunig 2. Feb 2019 17:04

Android FotoOrdner selber aufrufen
 
Hallo,

wie funktioniert der Aufruf TakePhotoFromLibraryAction mit Hilfe der Actionslist bzw. wie wird das ganze intern umgesetzt.

Ich möchte die Darstellung des Fotoordnerinhaltes nachbauen.

Während die Auflistung und Darstellung von 70 Fotos inklusive Erstellung von Thumbnails(bei Bedarf) unter Windows ca. 260 Millisekunden dauert, braucht das Android-Smartphone ca.20 Sekunden.

Dabei nimmt das eigentliche Laden der Bilder(mit Thumbnailerstellung bei Bedarf) tatsächlich die meiste Zeit in Anspruch.

Wie wird das von der oben genannten Funktion gehandhabt?
Was macht die oben genannte Funktion anders in Bezug auf das Erstellen der Bilder mit z.B. LoadThumbnailFromFile?

Gruß
Paul

TurboMagic 7. Feb 2019 19:49

AW: Android FotoOrdner selber aufrufen
 
Hilft dir ein rechter Mausklick und "gehe zur Deklaration" auf dieser Action weiter?
Das sollte dich zum Quellcode der Action führen und dir somit zeigen, was diese aufruft.
Du hast bei Delphi von fast allem den Quellcode verfügbar (in der Community Edition evtl. nicht?).

Grüße
TurboMagic

paul.kunig 7. Feb 2019 21:22

AW: Android FotoOrdner selber aufrufen
 
Hallo TurboMagic,

nein hilft es nicht. Man kommt zwar bist zum Methodenaufruf, die eigentliche Methode, was genau passiert, wird aber nicht angezeigt bzw. habe ich bis dato nicht gefunden.

Gruß
Paul

Rollo62 8. Feb 2019 11:10

AW: Android FotoOrdner selber aufrufen
 
http://docwiki.embarcadero.com/RADSt...key_Interfaces

paul.kunig 9. Feb 2019 08:52

AW: Android FotoOrdner selber aufrufen
 
Hallo Rollo62,

selber erstellen.

Das heißt,
1. Dateipfad aufrufen
2. Fotos in Imagekomponente laden(in TGrid, TListbox, ...)
3. Ergebnis anzeigen.

Also einen eigenen Datei-Explorer für die Anzeigen von Fotos.

Noch einmal zur Frage:
Kann mir jemand sagen, wie Android oder auch IOS die Fotos so schnell zur Ansicht bringt?

Gruß
Paul

TurboMagic 9. Feb 2019 16:38

AW: Android FotoOrdner selber aufrufen
 
Die Umsetzung des Interfaces befindet sich in der Unit

Source\FMX\FMX.MediaLibrary.Android.pas

in deinem Delphi Installationsverzeichnisses.
Schaut man sich diese an findet man einen Verweis auf das hier:

getFMXMediaLibrary

Sucht man es findet man das hier:

[JavaSignature('com/embarcadero/firemonkey/FMXNativeActivity')]
JFMXNativeActivity = interface(JNativeActivity)

in Unit Androidapi.JNI.Embarcadero.

=> Willkommen in java land! ;-)

paul.kunig 9. Feb 2019 18:24

AW: Android FotoOrdner selber aufrufen
 
Hallo TurboMagic,

das ist soweit richtig, danke!

Und was bringt mir diese Information?

Ich weiß noch immer nicht, was in dieser Funktion geschieht.

Hat deine Information einen tieferen Sinn oder wolltest du nur auf einen Post antworten oder habe ich etwas übersehen?

Noch einmal zur Frage:
Kann mir jemand sagen, wie Android oder auch IOS die Fotos so schnell zur Ansicht bringt?

Gruß
Paul

mjustin 10. Feb 2019 08:00

AW: Android FotoOrdner selber aufrufen
 
Zitat:

Kann mir jemand sagen, wie Android oder auch IOS die Fotos so schnell zur Ansicht bringt?
Indem zuerst nur die Bilder geladen und skaliert werden, die auf die Anzeigefläche passen? Die weiteren werden dann im Hintergrund nachgeladen.

Wie Delphi/FireMonkey das dagegen macht kann ich nicht sagen, möglich dass es einfach mit angezogener Handbremse fährt. Wenn es einen Performance-Engpass gibt Kann man den mit Quelltextstudium / Profiling / Logging eventuell eingrenzen, und die Stelle(n) finden wo die insgesamt 20000 Millisekunden 'verbraucht' werden.

TurboMagic 10. Feb 2019 08:47

AW: Android FotoOrdner selber aufrufen
 
Genau: um Multithreading wird man da vermutlich nicht herumkommen. Mindestens einen Thread der im Hintergrund weitere Bilder lädt, am besten vermutlich die, die an die gerade angezeigten angrenzen.

Schon mal geschaut, ob es nicht eine Drittanbieter Komponente für sowas gibt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz