╔══════════════════════════════════════════════╗ ^
║ ImageView ╔══════════════╗ ║ |
║ ║ ║ ║ |
║ ║ Actual image ║ ║ |
║ ║ ║ ║ |60px height of ImageView
║ ║ ║ ║ |
║ ║ ║ ║ |
║ ╚══════════════╝ ║ |
╚══════════════════════════════════════════════╝
<------------------------------------------------>
90px width of ImageView
J'ai une vue d'image avec une hauteur et une largeur par défaut, les images sont stockées dans db et je veux mettre l'image à l'échelle en fonction de la largeur de la hauteur Imageview. Comme je ne veux pas qu'il donne des valeurs par défaut parce que chaque fois que je change sa hauteur et sa largeur, je dois aussi le changer dans le code.
J'essaie d'obtenir la hauteur et la largeur d'ImageView mais 0 me revient dans les deux cas.
int height = ((ImageView) v.findViewById(R.id.img_ItemView)).getHeight();
cela me renvoie 0 même s'il a une hauteur et une largeur par défaut
android:scaleType="centerInside"
?Réponses:
Ma réponse à cette question pourrait vous aider:
Vous pouvez ensuite ajouter votre travail de mise à l'échelle de l'image à partir de la méthode onPreDraw ().
la source
Je viens de définir cette propriété et maintenant Android OS s'occupe de tout.
Utilisez-le dans votre layout.xml où vous avez planté votre ImageView: D
la source
Je pouvais obtenir la largeur et la hauteur de l'image par son dessinable;
la source
La raison pour laquelle les dimensions de ImageView sont 0 est parce que lorsque vous les interrogez, la vue n'a toujours pas effectué les étapes de disposition et de mesure. Vous avez seulement indiqué à la vue comment elle "se comporterait" dans la mise en page, mais elle n'a toujours pas calculé où placer chaque vue.
Comment décidez-vous de la taille à donner à l'image? Ne pouvez-vous pas simplement utiliser l'une des options de mise à l'échelle implémentées en mode natif?
la source
Publier sur le fil de l'interface utilisateur fonctionne pour moi.
la source
votre fichier xml:
votre fichier java:
la source
Je pense que vous pouvez laisser le système d'exploitation Android s'en occuper pour vous. Définissez le type d'échelle sur ImageView sur
fitXY
et l'image qu'elle affiche sera dimensionnée pour s'adapter à la taille actuelle de la vue.la source
Le moyen le plus simple consiste à obtenir la largeur et la hauteur d'une ImageView dans la méthode onWindowFocusChanged de l'activité
la source
Si vous avez créé plusieurs images dynamiquement essayez celle-ci:
// initialise votre tableau d'images
// crée par programmation et ajoute à la vue parent
// C'est tout. Codage heureux.
la source
mon ami par cela u n'obtient pas la hauteur de l'image stockée dans db.mais vous obtenez la hauteur de vue.pour obtenir la hauteur de l'image vous devez créer un bitmap à partir de l'image db, s et que vous pouvez récupérer la hauteur et la largeur de l'image
la source