我了解matrix
,其结构以及处理图片视图的比例类型。但是,
我无法找到ImageView.ScaleType="MATRIX"
的确切含义。通过声明这一点,绘制图像视图时会发生什么。
我什么时候可以使用ImageView.ScaleType="MATRIX"
?
它与FIT_END
& FIT_START
我用Google搜索并提到official link,但无法找到确切的答案。
答案 0 :(得分:10)
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
时,您声明要使用自己的矩阵进行缩放。阅读the docs了解详情
答案 1 :(得分:3)
根据我的理解,使用以下每个ImageView的ScaleType属性的详细信息
<强>中心
显示视图中心的图像,没有缩放。
<强> centerCrop 强>
缩放图像,使x和y尺寸都大于或等于视图,同时保持图像宽高比;裁剪图像中超出视图大小的任何部分;使图像在视图中居中。
<强> centerInside 强>
缩放图像以适合视图,同时保持图像宽高比。如果图像已经小于视图,那么这与中心相同。
<强> fitCenter 强>
缩放图像以适合视图,同时保持图像宽高比。至少有一个轴与视图完全匹配,结果在视图中居中。
<强> fitStart 强>
与fitCenter相同,但与视图的左上角对齐。
<强> fitEnd 强>
与fitCenter相同,但与视图的右下角对齐。
<强> fitXY 强>
缩放x和y尺寸以与视图尺寸完全匹配;不保持图像宽高比。
<强>矩阵强>
使用提供的Matrix类缩放图像。可以使用setImageMatrix方法提供矩阵。 Matrix类可用于将转换(例如旋转)应用于图像。
答案 2 :(得分:3)
您链接的文档提供了您正在寻找的答案。
绘图时使用图像矩阵进行缩放。可以使用
setImageMatrix(Matrix)
设置图像矩阵。从XML,使用以下语法:android:scaleType="matrix"
虽然你提到你已经知道Matrix
在图形的上下文中是什么,但我会简单解释一下,为了遇到这个问题的其他用户 - 一个矩阵可以用来操作画布时绘制图形。对于ImageView
矩阵,您可以使用它来翻译,翻转,旋转或以其他方式在屏幕上移动图像。
当我可以使用ImageView.ScaleType =“MATRIX”
时
您可以随时使用ImageView
使用它。您可以在Java代码中调用setScaleType()
以使用矩阵比例类型,也可以在布局XML中添加android:scaleType="matrix"
属性。
它与FIT_END&amp; FIT_START
FIT_END
和FIT_START
实际上都使用Matrix
来扩展您的图片。两者都保持原始宽高比并使图像完全适合视图,但只是以不同方式对齐结果。 End将缩放的图像与ImageView
的末尾对齐,而start将缩放的图像与ImageView
的开头对齐
答案 3 :(得分:1)
根据用户的捏拉手势比例因子构建并缩放Matrix
,然后根据此缩放的矩阵设置ImageView
。
请访问Android ImageView ScaleType
检查Effect和https://guides.codepath.com/android/Working-with-the-ImageView