2012-02-22 84 views
4

我的意图是让用户从图库中选择图像,然后进行裁剪活动。但是,我需要将裁剪蒙版定义的矩形锁定到特定尺寸,然后用户只需重新定位它即可显示图像的一部分。Android:将图像裁剪为特定尺寸

关于这将如何完成的任何想法?

感谢

-T

+0

检查:http://stackoverflow.com/questions/12758425/how-to-set-the-output-image-use-com-android-camera-action-crop/ – hcpl 2013-04-17 09:13:53

回答

15
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null) 
      .setType("image/*") 
      .putExtra("crop", "true") 
      .putExtra("aspectX", width) 
      .putExtra("aspectY", height) 
      .putExtra("outputX", width) 
      .putExtra("outputY", height) 
      .putExtra("scale", true) 
      .putExtra("scaleUpIfNeeded", true) 
      .putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)) 
      .putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); 
+0

你确定..?我没有得到这个? – GvSharma 2014-04-17 07:32:11

+0

非常感谢。我一直在寻找相同的:) – 2014-06-27 07:15:30

6

您需要创建一个自定义ImageView类来实现缩放和图像的平移,可以有一个固定的矩形image(transparent)叠加在该图像上。并且可以创建该位图的子位图。并将其保存在一个文件中。

createBitmap(Bitmap source, int x, int y, int width, int height); 

此方法用于创建子位图。

http://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/

实现缩放和平移后,我不知道如果createBitmap可以根据图像的可见部分创建子位图(即图像的一部分,不会是在屏幕上可见,当它被放大)因此,请尝试从imageView获取drawingCache()并为此创建子位图。

+0

我可以定制给你图像类与缩放和平移,如果你想。 – 2012-02-22 02:18:19

+0

我将如何获取子位图。这听起来像是黑魔法。 -TDK – TylerKinkade 2012-02-22 02:19:22

+0

我已将它添加到马回答 – 2012-02-22 02:21:33