web-dev-qa-db-fra.com

quelle est la signification de ImageView.ScaleType = "MATRIX": Android

Je connais le matrix, sa structure et je travaille sur le type d'échelle de la vue d'image. mais,

  1. 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.

  2. Quand puis-je utiliser ImageView.ScaleType="MATRIX"?

  3. 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.

15
Mayur R. Amipara
  1. 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.
  2. Vous pouvez utiliser imageView.setScaleType(ImageView.ScaleType.MATRIX) chaque fois que vous souhaitez personnaliser la façon dont votre image évolue, pivote, etc. à votre guise.
  3. 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

11
bitsoverflow

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.

3
Durgesh Patel

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

3
Tanis.7x

ScaleType = "MATRIX"

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

1
IntelliJ Amiya