2012-02-22 8 views
4

私の意図は、ユーザーがギャラリーから画像を選んだ後、切り抜きアクティビティを表示させることです。しかし、私はクロッピングマスクを特定の寸法に固定する矩形を必要とし、ユーザーは単に画像の一部を表示するためにクロッピングマスクを再配置します。Android:特定のサイズに画像を切り出す

これがどのように行われるかに関するアイデアはありますか?

おかげ

-T

+0

チェック:http://stackoverflow.com/questions/12758425/how-to-set-the-output-image-use-com-android-camera-action-crop/ – hcpl

答えて

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

+0

ありがとうございました。私は同じを探している:) –

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は、画像の可視部分からのサブビットマップを作成することができるかどうかわかりませんしたがって、drawingCache()imageViewから取得し、同じビットマップ用にサブビットマップを作成してみてください。

+0

私はカスタムあなたを与えることができますあなたが望むならばズームとパンで画像クラス。 –

+0

どのように私はサブビットマップをつかむでしょう。それは黒い魔法のように聞こえる。 -DKDK – TylerKinkade

+0

私は答えを –

関連する問題