Normaal gesproken is dit zo simpel als het laden van de afbeelding van een url op de achtergrond en het volgen van de voortgang door de te binden voortgangseigenschap van de voortgangsbalk naar de progress-eigenschap van de afbeelding . Dat zou de functionaliteit van de Android-code die je hebt gepost nabootsen met veel minder code.
ProgressBar bar = new ProgressBar();
Image image = new Image(url, true);
bar.progressProperty().bind(image.progressProperty());
Het enige lastige hier is dat de niet-Android-code die je hebt gepost niet hetzelfde is als de Android-code in functionaliteit. In plaats van een afbeelding op te halen van een URL, haalt de niet-Android-code de afbeelding op uit een database.
Als u de voortgang van het ophalen van afbeeldingen die zijn opgeslagen in een database wilt volgen, moet u een paar extra dingen doen:
- Sla in een extra veld in de database de grootte van de afbeelding op.
- Sla de afbeelding zelf op in een Blob in de database.
- Haal indien nodig de totale grootte van de afbeelding op uit de database.
- Haal de Blob op uit de database als een stream .
- Registreer een aangepaste URL protocol die in staat is om de databasestream op te halen en de stream naar een URL te converteren. (U kunt ook een webtoepassingsservlet hosten die de conversie uitvoert en de gegevens retourneert via http ).
- Je kunt de afbeelding nu op de achtergrond laden met je aangepaste URL-protocol en de voortgang ervan volgen via de voortgangseigenschap zoals voorheen.
Het uitvoeren van stap 5 is lastig en ik zal de code niet schrijven om het hier te doen, omdat het maken van zo'n code me veel tijd zou kosten.