如何在Android ImageView中缩放高度,但切断图像的末端?

如何在Android ImageView中缩放高度,但切断图像的末端?,android,image,imageview,scale,android-screen,Android,Image,Imageview,Scale,Android Screen,这更像是一个概念性的问题 假设我有这个静态图像,我想加载到ImageView中- 假设图像为600px x 200px(宽高比) 假设我尝试将其安装到的图像视图是300像素x 200像素(宽高比) 我只想按高度缩放,并切掉图像的左端,这样图像就可以放入imageview。此外,如果不需要切割(已经适合),我不想切割任何一个 因此,最终ImageView(如果它是300px乘以200px)将保存此图像 (基本上,F不会变形) 我已经看过了,但是没有一种比例类型能够达到这种自定义效果。有人知道我会

这更像是一个概念性的问题

假设我有这个静态图像,我想加载到ImageView中-

假设图像为600px x 200px(宽高比)

假设我尝试将其安装到的图像视图是300像素x 200像素(宽高比)

我只想按高度缩放,并切掉图像的左端,这样图像就可以放入imageview。此外,如果不需要切割(已经适合),我不想切割任何一个

因此,最终ImageView(如果它是300px乘以200px)将保存此图像

(基本上,F不会变形)


我已经看过了,但是没有一种比例类型能够达到这种自定义效果。有人知道我会怎么做吗?在我的情况下,我不想保持原始的纵横比。

您应该裁剪位图,使其始终适合您的ImageView。如果要裁剪右下角,可以执行类似的操作:

if (needsCropping()) {
    int startWidth = originalImage.getWidth() - 300;
    int startHeight = originalImage.getHeight() - 200;


    Bitmap croppedBitmap = Bitmap.createBitmap(originalImage, startWidth, startHeight, width, height);

    // TODO set imageview
}
FIT_END将执行以下操作: 计算一个将保持原始src纵横比的比例,但也将确保src完全适合dst。至少有一个轴(X或Y)将精确匹配。结束将结果与dst的右边缘和下边缘对齐

您可以使用ScaleType.CENTER\u CROP,但这不会以任何方式重新缩放图像

任何这些的组合都是不可能的,因为您必须有自己的缩放方法(子类化ImageView)


或者,最简单的方法是使用.9PNG作为图像的源,它可以容纳任何空间,而不会分离。

:签出以下链接,这可能有助于尝试使用负填充/布局\u边距values@Aakash我应该从中使用哪个scaletype。它们都保持了原来的面貌ratio@Anton为什么不自定义图像视图?您应该使用中心比例类型。是否需要为此方法创建自定义图像视图?如果您在多个不同的位置使用自定义图像视图,则可以创建自定义图像视图,但这不是一个要求。如何首先根据高度进行缩放?缩放后的位图应与ImageView的宽度和高度完全匹配,因此不需要设置缩放类型标志i trued FIT_END。宽度(x轴)精确匹配。但问题是Y根本没有,顶部有这么多空间。你知道解决这个问题的方法吗?你有两个选择,覆盖ImageView或使用9PathPNG,这会更容易。