В чем смысл ImageView.ScaleType = "MATRIX": Android

Я знаю о matrix, его структуре и работе над масштабным типом изображения. но,

  • Я не могу найти точный смысл ImageView.ScaleType="MATRIX". Объявив это, что именно происходит при рисовании изображения.

  • Когда я могу использовать ImageView.ScaleType="MATRIX"?

  • Чем он отличается от FIT_END и FIT_START

Я искал ее, а также ссылался на официальную ссылку , но не смог найти точный ответ.

Ответы

Ответ 1

  • ImageView.ScaleType.MATRIX позволяет использовать Matrix для масштабирования изображения. Вы можете установить матрицу с помощью ImageView.setImageMatrix(matrix). Итак, объявив scaleType MATRIX, вы говорите, что хотите использовать явную матрицу для этого.
  • Вы можете использовать imageView.setScaleType(ImageView.ScaleType.MATRIX), когда хотите настроить способ масштабирования, вращения и т.д. по вашему желанию.
  • FIT_END и FIT_START являются стандартными типами шкалы. Таким образом, если вы используете FIT_END, например, ваше изображение будет поддерживать исходное соотношение сторон и выравнивает результат правого и нижнего краев изображения. В основном, разница в том, что FIT_END и FIT_START являются "пресетами", а при Matrix вы заявляете, что хотите использовать свою собственную матрицу для масштабирования.

Прочтите документы для получения дополнительной информации

Ответ 2

Документация, на которую вы ссылаетесь, предоставляет ответ, который вы ищете.

Масштабирование с использованием матрицы изображений при рисовании. Матрицу изображений можно установить с помощью setImageMatrix(Matrix). Из XML используйте этот синтаксис: android:scaleType="matrix"

Хотя вы упомянули, что уже знаете, что такое Matrix в контексте графики, я кратко объясню ради других пользователей, которые сталкиваются с этим вопросом. Матрица может использоваться для манипулирования холстом при рисовании графики, В случае матрицы ImageView вы можете использовать ее для перевода, переворота, поворота или иного перемещения изображения на экране.

когда я могу использовать ImageView.ScaleType = "MATRIX"

Вы можете использовать его, когда захотите, с помощью ImageView. Вы можете вызвать setScaleType() в вашем Java-коде, чтобы использовать тип матричного масштаба, или вы можете добавить атрибут android:scaleType="matrix" в свой формат XML.

как он отличается от FIT_END и FIT_START

FIT_END и FIT_START как на самом деле используйте Matrix для масштабирования изображения. Оба сохраняют исходное соотношение сторон и полностью соответствуют изображению, но просто выравнивают результат по-разному. End выравнивает масштабированное изображение до конца ImageView, тогда как начало выравнивает масштабированное изображение до начала ImageView

Ответ 3

В соответствии с моим пониманием, используйте ниже подробные сведения для каждого атрибута ImageView ScaleType

центр

Отображает изображение с центром в представлении без масштабирования.

centerCrop

Масштабирует изображение таким образом, что размеры x и y больше или равны представлению, сохраняя при этом соотношение сторон изображения; обрезает любую часть изображения, которая превышает размер представления; центрирует изображение в представлении.

centerInside

Масштабирует изображение, чтобы оно соответствовало внутреннему виду, сохраняя соотношение сторон изображения. Если изображение уже меньше, чем представление, то это то же самое, что и центр.

fitCenter

Масштабирует изображение, чтобы оно соответствовало внутреннему виду, сохраняя соотношение сторон изображения. По крайней мере одна ось будет точно соответствовать представлению, а результат центрируется внутри представления.

fitStart

То же, что и fitCenter, но выравнивается в левом верхнем углу представления.

fitEnd

То же, что и fitCenter, но выравнивается в правом нижнем углу представления.

fitXY

Масштабирует размеры x и y, чтобы точно соответствовать размеру вида; не поддерживает соотношение сторон изображения.

матрица

Масштабирует изображение, используя поставляемый класс Matrix. Матрица может быть предоставлена ​​с использованием метода setImageMatrix. Класс Matrix может использоваться для применения преобразований, таких как вращения к изображению.