Android 将ScaleType.MATRIX设置为自定义ImageView会收缩图像的初始显示
我正要创建自己的自定义ImageView,所以我创建了下面的类Android 将ScaleType.MATRIX设置为自定义ImageView会收缩图像的初始显示,android,imageview,android-imageview,Android,Imageview,Android Imageview,我正要创建自己的自定义ImageView,所以我创建了下面的类 class MyImageView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : AppCompatImageView(context, attrs, defStyleAttr) { } 默认情况下(即不带setScaleType(ScaleType.MATRIX)),它
class MyImageView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : AppCompatImageView(context, attrs, defStyleAttr) {
}
默认情况下(即不带setScaleType(ScaleType.MATRIX)
),它看起来如下(与屏幕非常匹配)
因此,如果我在init
中添加setScaleType(ScaleType.MATRIX)
,它将变成如下所示
class MyImageView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : AppCompatImageView(context, attrs, defStyleAttr) {
init {
setScaleType(ScaleType.MATRIX)
}
}
为什么会缩水?我该怎么做才能继续使用
ScaleType.MATRIX
,使其最初的显示适合屏幕?默认情况下,MATRIX ScaleType不对其应用任何缩放类型,因此图像大小将调整为其原始大小
在这种情况下,图像比视图小,因此缩小。不指定比例类型,它将调整中心,因此放大较小的图像以适应视图大小
更多解释