2016-05-11 237 views

回答

2

的Xamarin窗體Media plugin會做到這一點,包括示例代碼

takePhoto.Clicked += async (sender, args) => 
     { 

      if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.PhotosSupported) 
      { 
      DisplayAlert("No Camera", ":(No camera avaialble.", "OK"); 
      return; 
      } 

      var file = await CrossMedia.Current.TakePhotoAsync(new Media.Plugin.Abstractions.StoreCameraMediaOptions 
      { 

       Directory = "Sample", 
       Name = "test.jpg" 
      }); 

      if (file == null) 
      return; 

      DisplayAlert("File Location", file.Path, "OK"); 

      image.Source = ImageSource.FromStream(() => 
      { 
      var stream = file.GetStream(); 
      file.Dispose(); 
      return stream; 
      }); 
     }; 
+0

謝謝,我初學者用xamarin.forms請你告訴我怎麼媒體插件添加到我的項目(可能你請給我所有步驟) –

+2

爲Forms項目,使用nuget將包添加到共享項目和每個平臺項目 – Jason

+0

視覺工作室沒有響應當我試圖搜索關於nuget,我應該做什麼後,我添加它 –

0
 var profile = new Image { }; 
     profile.Source = "profile.png"; 
     profile.HorizontalOptions = LayoutOptions.StartAndExpand; 
     profile.VerticalOptions = LayoutOptions.StartAndExpand; 

     var profiletap = new TapGestureRecognizer(); 

     profiletap.Tapped += async (s, e) => 
     { 
      var file = await CrossMedia.Current.PickPhotoAsync(); 
      if (file == null) 
       return; 
       await DisplayAlert("File Location", file.Path, "OK"); 

      im = ImageSource.FromStream(() => 
      { 
       var stream = file.GetStream(); 
       //file.Dispose(); 
       return stream; 

      }); 

      profile.Source = im; 


    // await Navigation.PushModalAsync(new PhotoPage(im)); 
     }; 

     profile.GestureRecognizers.Add(profiletap); 
相關問題