如何在 Android ImageView 中缩放高度但截断图像的末尾?
How to scale the height but cut off the end of an image in Android ImageView?
这更像是一个概念性的 Android 问题
假设我有这张静态图片,我想将其加载到 ImageView -
假设图像为 600px x 200px。(宽度 x 高度)
假设我的图像视图是 300 像素 x 200 像素(宽 x 高)
我只想按高度缩放并切掉图像的左端,以便图像适合图像视图。另外,如果不需要削减(已经适合),我不想削减任何一部分。
所以最后 ImageView(如果它是 300 像素 x 200 像素)将容纳这张图片
(基本上 F 不会失真)
我看过 Scale To Fit,但 none 的比例类型似乎可以实现这种自定义效果。有谁知道我会怎么做?就我而言,我不想保持原始纵横比。
您应该裁剪位图,使其始终适合您的 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)将完全适合。 END 将结果与 dst 的右边缘和下边缘对齐。
您可以使用 ScaleType.CENTER_CROP 但这不会以任何方式重新缩放图像。
这些的任何组合都是不可能的,因为你必须有自己的缩放方法(子类化 ImageView)。
或者,简单的方法是将 .9PNG 作为图像的来源,它适合任何 space 而不会扭曲。
这更像是一个概念性的 Android 问题
假设我有这张静态图片,我想将其加载到 ImageView -
假设图像为 600px x 200px。(宽度 x 高度)
假设我的图像视图是 300 像素 x 200 像素(宽 x 高)
我只想按高度缩放并切掉图像的左端,以便图像适合图像视图。另外,如果不需要削减(已经适合),我不想削减任何一部分。
所以最后 ImageView(如果它是 300 像素 x 200 像素)将容纳这张图片
我看过 Scale To Fit,但 none 的比例类型似乎可以实现这种自定义效果。有谁知道我会怎么做?就我而言,我不想保持原始纵横比。
您应该裁剪位图,使其始终适合您的 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)将完全适合。 END 将结果与 dst 的右边缘和下边缘对齐。
您可以使用 ScaleType.CENTER_CROP 但这不会以任何方式重新缩放图像。
这些的任何组合都是不可能的,因为你必须有自己的缩放方法(子类化 ImageView)。
或者,简单的方法是将 .9PNG 作为图像的来源,它适合任何 space 而不会扭曲。