2011-07-29 51 views
2

我已經使用Intent從我的活動的ImageView中選擇了SD卡中的圖像,現在我想要顯示一個固定大小的移動矩形,即我們必須使用手勢和我們想要的圖像的任何部分,那麼我們就可以裁剪那個。我們該怎麼做呢?對我來說真的很難? 請幫我這麼做?運行時裁剪android中的圖像

更新 - >我已經能夠把矩形和我得到裁剪和保存選定部分的問題。如何做到這一點?

+2

你想在你感興趣的區域可以裁剪圖像,你想要這個嗎?清除答案plz – Abhi

+0

是的,只要我想裁剪我就可以。 – Geetanjali

回答

7

ok geetanjali。試試這個代碼,這將打開庫,你可以挑選一張照片,作物,它將存儲與名字從蘋果開始,您可以在活動見裁剪圖像

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
     photoPickerIntent.setType("image/*"); 
     photoPickerIntent.putExtra("crop","true"); 
     photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, getTempFile()); 
     photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); 
     startActivityForResult(photoPickerIntent, 1); 

    } 

     private Uri getTempFile() { 
     if (isSDCARDMounted()) { 
      String f; 
      muri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), 
        "apple_" + String.valueOf(System.currentTimeMillis()) + ".jpg")); 
     //File f = new File(Environment.getExternalStorageDirectory(),"titus1.jpg"); 
     try { 
     f=muri.getPath(); 
     } catch (Exception e) { 

     } 
     return muri; 
     } else { 
     return null; 
     } 
     } 
    private boolean isSDCARDMounted(){ 
     String status = Environment.getExternalStorageState(); 
     if (status.equals(Environment.MEDIA_MOUNTED)) 
     return true; 
     return false; 
     } 
    protected void onActivityResult(int requestCode, int resultCode, 
      Intent imageReturnedIntent) { 
     super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

     switch (requestCode) { 
     case 1: 
      if (resultCode == RESULT_OK) { 
      String filePath= muri.getPath(); 
      Log.e("path", "filePath"); 
      Toast.makeText(this, filePath, Toast.LENGTH_LONG).show(); 

      Bitmap selectedImage = BitmapFactory.decodeFile(filePath); 
      image = (ImageView)findViewById(R.id.image); 
      image.setImageBitmap(selectedImage); 


     } 
     } 
    } 
+0

好吧試試吧,並讓我反饋 – Abhi

+0

你確定........ – Geetanjali

+1

嘿上面的代碼也顯示在選定的圖像上的矩形,這樣你就可以裁剪你想要的東西 – Abhi