Android: 如何使用 Picasso 裁剪图像?

Android: How to crop an image using Picasso?

我想使用 Android 的毕加索图像库来裁剪图像 – 而不是调整图像大小。

更具体地说,我想加载一张图片,然后截取它的一个矩形,坐标为 (x,y),宽度为 w,高度为 h:

Original Image
------------------------------
|                            |
|    (x,y)                   |
|      ------------          |
|      |          |          |
|      | Cropped  |          |
|      |  Image   | h        |
|      |          |          |
|      |          |          |
|      ------------          |
|           w                |
------------------------------

然后,我想将原始图像的这个矩形块加载到ImageView中。我怎么做?

您可以为此使用 Picasso 的变换函数。它允许您通过自己的方法对 Bitmap 可绘制对象进行所需的更改:

Picasso.with(getContext())
       .load(R.drawable.sample)  // the image you want to load
       .transform(new Transformation() {
           @Override
           public Bitmap transform(Bitmap source) {
               Bitmap result = Bitmap.createBitmap(source,x,y,w,h);   // the actual cropping
               source.recycle();   // recycle the source bitmap to avoid memory problems
               return result;
           }

           @Override
           public String key() {
               return x+","+y+","+w+","+h;  // some id unique for the transformation you do
           }
       })
       .into(findViewById(R.id.yourImageView);    // load the cropped image into your image view