2012-01-22 5 views
2

Eh bien, je travaille sur une application qui charge des images à partir d'Internet. Tout est OK jusqu'à maintenant, mais j'aimerais savoir comment calculer la durée de chargement de ces images à partir d'Internet?Image d'Internet - Temps de chargement

Il ya une méthode sur Bitmap pour faire cela? Peut-être qu'il y a un autre moyen que vous me suggéreriez?

Cheers,

+0

http://stackoverflow.com/questions/3028306/download-a-file-with-android-and-showing-the-progress-in-a-progressdialog/3028660#3028660 –

+0

Vous voudrez peut-être regarder 'RemoteImageView' qui fait partie du paquet' Ignition' qui inclut des outils et un framework de base pour les applications Android. Le code est hébergé sur: https://github.com/kaeppler/ignition 'RemoteImageView' utilise un' ViewSwitcher' pour alterner entre une image de chargement et l'image réellement chargée. Si vous décidez d'utiliser le calcul du temps, il vous sera peut-être plus facile de pirater le paquet plutôt que d'écrire vous-même. –

Répondre

1

Eh bien, si vous connaissez la taille du fichier b de l'image (en octets), et la vitesse s à laquelle il est le téléchargement (en octets par seconde), le temps t (en secondes) pour télécharger le fichier sera:

t = b/s 

Maths simples vraiment pour convertir vos unités si nécessaire. N'oubliez pas que cette valeur change constamment à mesure que la vitesse de téléchargement change.

Edit: Maintenant, si vous êtes à la recherche que de calculer combien de temps l'image a télécharger et peut-être afficher ces informations après le fait, alors une solution simple serait de commencer une minuterie lorsque le téléchargement est lancé et l'arrêter quand c'est fait.

+0

Eh bien, merci. Mais c'est le point, cela dépendra de nombreuses variables. J'aimerais savoir s'il y a quelque chose de plus simple. Par exemple: L'image est chargée. C'est vrai ou faux. Et combien de temps faut-il entre ces deux étapes. – Javanes

+0

@Javanes Si vous voulez vraiment afficher _time remaining_ pour charger une image depuis Internet, vous n'avez pas le choix. –

0

HTTP response contiendra un champ Content-Length ce qui vous permettra de savoir combien il faut télécharger. Si vous connaissez la vitesse de votre connexion, vous pouvez calculer l'heure estimée en utilisant time = dataSize/downloadSpeed.

Vous pouvez également utiliser la connaissance de combien vous avez téléchargé jusqu'à présent pour déterminer combien de temps cela prendra en utilisant linear extrapolation. time = (dataSize * (timeNow - timeStart))/dataDownloadedNow

+0

Salut Gareth, oui, j'ai compris. Par là, j'utilise le temps de contrôler un Sleep sur Thread qui rejette un ProgressBar. Avez-vous des suggestions sur la façon dont je pourrais contrôler le sommeil ou peut-être comment pourrais-je contrôler le fil sans temps? – Javanes