毕加索能否在不缩放图像的情况下裁剪图像?

问题描述

我有一张要在Picasso中加载的图像,该图像我想在没有缩放比例的情况下裁剪。 这可能吗?

例如,如果我有

  • 400x800的图像
  • 200x400的图像视图

我所见过的有关裁剪的任何问题都建议使用resize(x,y).centreCrop(alignGravity)(即缩放和裁剪,而不仅仅是裁剪)。

在该示例中,您将整个图像缩放为50%,正如centreCrop的JavaDoc所提到的:

这种裁剪技术会缩放图像,使其填充请求的边界,然后裁剪多余的图像,并优先选择alignGravity上的内容

我想显示图像的中间200x400像素,并且完全失去边缘(类似于ImageMagick's crop would work的方式)。

有没有不缩放就可以种植的方法

解决方法

所以似乎是开箱即用的,不是的,但是您可以使用Picasso Transformations库来做到这一点:

implementation 'jp.wasabeef:picasso-transformations:2.4.0'

然后:

Picasso.get()
       .load(largeImage)
       .transform(new CropTransformation(width,height,GravityVertical.CENTER,GravityVertical.CENTER))
       .into(imageView,/* callback */);

如果您使用的是resize()centreCrop(),则需要在调用transform()之后使用。