2010-09-23 4 views
1

Mon application utilise des miniatures téléchargées sur Internet. Les vignettes sont générées par le serveur, et on spécifie dans la requête quelle taille les vignettes devraient être. Est-ce qu'il y a un moyen pour moi de savoir, par programmation, à l'intérieur d'un getView() de ListAdapter, les dimensions d'un ImageView dans la vue qui est retourné, donc ma vignette est parfaitement mise à l'échelle? Je peux toujours le coder en dur, mais je préférerais ne pas le faire.Android: sachant à l'avance quelle sera la taille d'un ImageView?

Ou bien, y a-t-il une sorte d'écouteur ou de rappel que je peux utiliser pour demander le pouce une fois que la vue a été mise en page?

EDIT: Les ImageViews ont fixé layout_height et layout_width, cependant, je voudrais réutiliser le même code pour les différentes parties de l'application qui utilisent des images de taille différente, ce qui est la raison pour laquelle hardcoding est particulièrement mauvaise.

Répondre

0

Vous ne connaîtrez pas les dimensions lors de la phase de construction de l'ImageView dans getView. (évidemment les conversViews sont différents). J'ai contourné ceci en créant un ImageView sous-classé qui implémente la méthode View.OnLayoutChangeListener onLayoutChanged et déclenche le chargement de l'image via notre proxy resizer (et via un memcache local). Que ce soit la façon la plus élégante, je ne sais pas mais ça marche. Tout semble moche comparé à iOS!

Voir aussi:

Android: Finding size (resolution-wise) of a GalleryView.

Questions connexes