问题描述
我将要创建自己的自定义ImageView,因此我在下面创建此类。
class MyImageView @JvmOverloads constructor(
context: Context,attrs: AttributeSet? = null,defStyleAttr: Int = 0
) : AppCompatimageView(context,attrs,defStyleAttr) {
}
默认情况下(即不使用setScaleType(ScaleType.MATRIX)
),它看起来在下面(非常适合屏幕)。
因此,如果我在setScaleType(ScaleType.MATRIX)
中添加init
,它将变成如下所示。
class MyImageView @JvmOverloads constructor(
context: Context,defStyleAttr) {
init {
setScaleType(ScaleType.MATRIX)
}
}
为什么收缩?我该怎么做才能仍然使用ScaleType.MATRIX
并使其最初显示在适合屏幕的位置?
解决方法
默认情况下,Matrix比例类型将不应用任何比例类型,因此图像将被调整为原始尺寸。
在这种情况下,图像小于视图,因此缩小了。如果不指定ScaleType,它将使用FitCenter,因此会放大较小的图像以适合视图大小。
更多说明here