J'ai besoin d'obtenir largeur / hauteur de l'image affichée dans iMegview et comparez-la à la taille de l'image orginale qui est dans imageview.GetImage (). GetWidth () / getheightth () et écouter les modifications si l'utilisateur redimensionne le formulaire GUI d'application. < P> Je reçois cette taille à partir de Je reçois la taille du bleu qui est imageview mais j'ai besoin de la taille de l'image affichée (vert). Comment puis-je l'obtenir en tant que propriété pour écouter lorsque l'utilisateur redimensionner l'application de fenêtre (Vert modifier également la taille, mais il semble avoir une taille max et min afin qu'il arrête de redimensionner avec imageView quand il est max ou min). P> i Utilisez cette propriété pour calculer% de taille d'image orginale en bas à droite en dessous du rectangle bleu. p> est-il possible? p> E: ci-dessous est FXML de cet onglet: P> < Pré> xxx pré> p> p> imageview.fitwidthProperty () code> et similaire pour la hauteur, mais je reçois la taille de l'image de l'image à l'intérieur:
p>
3 Réponses :
~> 1) p>
Le fait que l'image
code> ne redimensionne pas pour couvrir tous les imageview a à voir avec la méthode Preserveratio.Si vous voulez être couvert
setpreserveratio (FALSE); code> avec une combinaison de
setsmooth (true); code> p>
~> 2) p> blockQuote>
La bordure verte est la taille de l'image d'origine. P>
~> 3) p> blockQquote>
avant d'ajouter l'image code> au
imageview code> Vous pouvez faire: p>
xxx pré> et c'est La taille d'origine de l'image. p>
comme pour la taille de l'image lorsqu'il est affiché à l'intérieur de l'image code>: p>
xxx pré> Pour la taille de
imageview code> à l'intérieur de la scène (la bordure bleue de votre question): p>
xxx pré>
imageview code> classe a propriétés pour ce qui précède. P> blockQuote>
imageview.getfitwidth () ne fonctionne pas. Mais j'ai trouvé ce dont j'avais besoin dans imageview.boundsinparentProperty () alors résolu.
Même ici, vous devez utiliser: listview.boundsinparentProperty (). Getwidth () code>
Je ne suis pas au courant d'une propriété que vous pourriez utiliser directement pour obtenir aux chiffres que vous souhaitez, mais vous pourriez proposer cela comme une amélioration pour une future version de JavaFX. P>
Ce que vous pouvez faire maintenant est d'écrire du code qui suit toutes les protégées de l'image d'image qui ont une influence sur la taille de l'image affichée, puis calculez vous-même la taille affichée vous-même. Cela ne semble pas trop compliqué pour moi. P>
Lorsque le imageview code> est défini pour préserver le rapport de format, il faut calculer les dimensions réelles à la main. Au moins je n'ai pas trouvé d'autre manière.
double aspectRatio = image.getWidth() / image.getHeight();
double realWidth = Math.min(imageView.getFitWidth(), imageView.getFitHeight() * aspectRatio);
double realHeight = Math.min(imageView.getFitHeight(), imageView.getFitWidth() / aspectRatio);