android centerCrop适用于较大屏幕,其中ImageView宽度与父屏幕匹配

android centerCrop适用于较大屏幕,其中ImageView宽度与父屏幕匹配,android,android-imageview,aspect-ratio,scaletype,Android,Android Imageview,Aspect Ratio,Scaletype,我在整个应用程序中都使用了android:scaleType=“centerCrop”,以便未知纵横比和分辨率的图像在我的ImageView中以统一和缩放的方式显示 centerCrop算法从视图中心缩放图像,超出imageview的边界 当手机处于纵向模式时,这非常棒。手机外形因素纵横比是centerCrop的理想选择。但在横向模式和更大屏幕下,centerCrop通常不会将图像的组成固定在安全区域。受试者通常被砍头 是否有一个额外的scaleType可以用来动态地解释这一点,即使我开始检测分

我在整个应用程序中都使用了
android:scaleType=“centerCrop”
,以便未知纵横比和分辨率的图像在我的ImageView中以统一和缩放的方式显示

centerCrop算法从视图中心缩放图像,超出imageview的边界

当手机处于纵向模式时,这非常棒。手机外形因素纵横比是centerCrop的理想选择。但在横向模式和更大屏幕下,centerCrop通常不会将图像的组成固定在安全区域。受试者通常被砍头


是否有一个额外的scaleType可以用来动态地解释这一点,即使我开始检测分辨率并为它们制作替代布局,centerCrop的替代方案是什么?保持相同的缩放方式,但不要失去被摄体的焦点

您可以提供自己的矩阵,并根据需要对其进行缩放,以便指定所需的中心

将比例类型设置为“矩阵”,然后使用

缺点是你需要做数学计算出正确的比例,这样当从那个点开始缩放时它就适合了。在X和Y方向上保持与上面相同,它将保持纵横比


您可以从处理中心的ImageView中的代码开始,然后仅修改轴点以适应

您的ImageView的大小是多少,您说宽度与父视图匹配,但高度、包裹内容如何?ashisduh,多少dp或包裹内容您能给我举个例子吗?我脑子里不知道任何矩阵的例子
imageView.setScaleType(ScaleType.MATRIX);
Matrix m = new Matrix();
float scale = 2;
m.setScale(scale, scale, 50, 100); //scale by 2x around the point 50, 100
imageView.setImageMatrix(m);