2016-11-21 70 views
-2

我試圖在畫廊中拍攝一張照片,所以我知道在Activity中這樣做,我使用Intent調用畫廊,並使用onActivityResult取道,但當我使用片段時,我不能使用「onActivityResult」,有人可以使用Fragment和CustomDialog給出一個例子嗎?如何拍攝片段(Android Studio)

+0

*但是當我使用之間的通信一個片段,我不能使用「onActivityResult」* ...爲什麼? – Selvin

+0

嗨,嘗試這個鏈接http://stackoverflow.com/questions/25759227/how-to-display-image-in-imageview-from-gallery-in-fragment –

+1

https://developer.android.com/reference /android/app/Fragment.html#onActivityResult(int,int,android.content.Intent)Here you go.It is available in Fragment .. –

回答

1

裏面的片段寫代碼

Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
      // ******** code for crop image 
      i.putExtra("crop", "true"); 
      i.putExtra("aspectX", 100); 
      i.putExtra("aspectY", 100); 
      i.putExtra("outputX", 256); 
      i.putExtra("outputY", 356); 

      try { 

       i.putExtra("return-data", true); 
       startActivityForResult(
         Intent.createChooser(i, "Select Picture"), 0); 
      }catch (ActivityNotFoundException ex){ 
       ex.printStackTrace(); 
      } 

在你的片段的主要活動編寫代碼onActivityResult

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode==0 && resultCode == Activity.RESULT_OK){ 
     try { 
      Bundle bundle = data.getExtras(); 
      Bitmap bitmap = bundle.getParcelable("data"); 
      img_user.setImageBitmap(bitmap); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

這種嘗試,它應該工作。如果正確,不要忘記接受答案。

+0

*在你的主要活動的片段* ????片段不包含活動......還有,如果多個活動使用這個片段呢? – Selvin

+0

每個片段都有其自己的父活動。您必須在您已經初始化片段的Activity中編寫此方法。 –

+0

我想我們不應該在別人的帖子上討論這個問題.... –

-1

您可以存儲路徑類字段(活動類),並通過調用其getter方法獲得片段這個路徑,也可以使用界面活性片段 See Here

+0

任何人都可以告訴我爲什麼我會得到負面投票嗎?請告訴我,以便將來避免它 – Onkar