Je connais le matrix
, sa structure et je travaille sur le type d'échelle de la vue d'image. mais,
Je ne trouve pas la signification exacte de ImageView.ScaleType="MATRIX"
. En déclarant cela, que se passe-t-il exactement lors du dessin de l'image.
Quand puis-je utiliser ImageView.ScaleType="MATRIX"
?
En quoi diffère-t-il de FIT_END
& FIT_START
J'ai googlé à ce sujet et j'ai également référé le lien officiel mais je n'ai pas pu trouver la réponse exacte.
ImageView.ScaleType.MATRIX
Vous permet d'utiliser un Matrix
pour mettre l'image à l'échelle. Vous pouvez définir la matrice à l'aide de ImageView.setImageMatrix(matrix)
. Donc, en déclarant le scaleType à [~ # ~] matrice [~ # ~] vous dites que vous souhaitez utiliser une matrice explicite pour ce faire.imageView.setScaleType(ImageView.ScaleType.MATRIX)
chaque fois que vous souhaitez personnaliser la façon dont votre image évolue, pivote, etc. à votre guise.FIT_END
Et FIT_START
Sont des types d'échelle par défaut. Ainsi, si vous utilisez FIT_END
Par exemple, votre image conservera le rapport hauteur/largeur d'origine et alignera le résultat des bords droit et inférieur de votre vue d'image. Donc, fondamentalement, la différence est que FIT_END
Et FIT_START
Sont des "préréglages" tandis qu'avec MATRIX
vous déclarez que vous voulez utiliser votre propre matrice pour évoluer.Lisez la documentation pour plus d'informations
Selon ma compréhension, utilisez les détails ci-dessous pour les attributs ScaleType de chaque ImageView
centre
Affiche l'image centrée dans la vue sans mise à l'échelle.
centerCrop
Met l'image à l'échelle de sorte que les dimensions x et y soient supérieures ou égales à la vue, tout en conservant le rapport hauteur/largeur de l'image; recadre toute partie de l'image qui dépasse la taille de la vue; centre l'image dans la vue.
centerInside
Met l'image à l'échelle pour l'adapter à la vue, tout en conservant le rapport hauteur/largeur de l'image. Si l'image est déjà plus petite que la vue, c'est la même chose que le centre.
fitCenter
Met l'image à l'échelle pour l'adapter à la vue, tout en conservant le rapport hauteur/largeur de l'image. Au moins un axe correspond exactement à la vue et le résultat est centré à l'intérieur de la vue.
fitStart
Identique à fitCenter mais aligné en haut à gauche de la vue.
fitEnd
Identique à fitCenter mais aligné en bas à droite de la vue.
fitXY
Met à l'échelle les dimensions x et y pour correspondre exactement à la taille de la vue; ne conserve pas le format d'image.
matrice
Met l'image à l'échelle à l'aide d'une classe Matrix fournie. La matrice peut être fournie à l'aide de la méthode setImageMatrix. Une classe Matrix peut être utilisée pour appliquer des transformations telles que des rotations à une image.
La documentation à laquelle vous avez lié fournit la réponse que vous recherchez.
Échelle en utilisant la matrice d'image lors du dessin. La matrice d'image peut être définie à l'aide de
setImageMatrix(Matrix)
. Depuis XML, utilisez cette syntaxe:Android:scaleType="matrix"
Bien que vous ayez mentionné que vous savez déjà ce qu'est un Matrix
dans le contexte des graphiques, j'expliquerai brièvement pour le bien des autres utilisateurs qui rencontrent cette question - Une matrice peut être utilisée pour manipuler le canevas lors du dessin de graphiques . Dans le cas de la matrice d'un ImageView
, vous pouvez l'utiliser pour traduire, retourner, faire pivoter ou déplacer autrement l'image sur l'écran.
quand je peux utiliser ImageView.ScaleType = "MATRIX"
Vous pouvez l'utiliser quand vous le souhaitez avec un ImageView
. Vous pouvez appeler setScaleType()
dans votre Java pour utiliser un type d'échelle de matrice ou vous pouvez ajouter l'attribut Android:scaleType="matrix"
Dans votre mise en page XML.
en quoi il diffère de FIT_END et FIT_START
FIT_END
et FIT_START
utilisent tous les deux un Matrix
pour mettre votre image à l'échelle. Les deux conservent le rapport hauteur/largeur d'origine et ajustent entièrement l'image dans la vue, mais alignent simplement le résultat différemment. Fin alignera l'image mise à l'échelle à la fin du ImageView
, tandis que début alignera l'image mise à l'échelle au début du ImageView
Un Matrix
est construit et mis à l'échelle en fonction du facteur d'échelle du geste de pincement de l'utilisateur, puis de l'ensemble ImageView
en fonction de cette matrice mise à l'échelle. Veuillez visiter ici Android ImageView ScaleType
Vérifiez le Effet . Et https://guides.codepath.com/Android/Working-with-the-ImageView