Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将ScaleType.MATRIX设置为自定义ImageView会收缩图像的初始显示_Android_Imageview_Android Imageview - Fatal编程技术网

Android 将ScaleType.MATRIX设置为自定义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)),它

我正要创建自己的自定义ImageView,所以我创建了下面的类

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不对其应用任何缩放类型,因此图像大小将调整为其原始大小

在这种情况下,图像比视图小,因此缩小。不指定比例类型,它将调整中心,因此放大较小的图像以适应视图大小

更多解释