![](/img/trans.png)
[英]How to send a photo to the drawable folder after take the photo on Xamarin Android?
[英]Take Photo in Xamarin Android with MvvmCross
我正在Xamarin Android項目上工作,我想用MvvmCross實現拍照。
這是我的代碼:
public class PhotoService:IPhotoService
{
private const int MaxPixelDimension = 1280;
private const int DefaultJpegQuality = 90;
private Stream imageStream;
public Stream ImageStream
{
get { return imageStream; }
set { imageStream = value; }
}
public void GetPhoto()
{
var task = Mvx.Resolve<IMvxPictureChooserTask>();
task.TakePicture(
MaxPixelDimension,
DefaultJpegQuality,
SavePicture, null);
}
private void SavePicture(Stream stream)
{
ImageStream = stream;
}
}
但在:
task.TakePicture(
MaxPixelDimension,
DefaultJpegQuality,
SavePicture,
null);
我有錯誤:
System.Reflection.TargetInvocationException:調用的目標引發了異常。
更新
在調用堆棧中,我有:
Android.Content.Intent..ctor中的/Users/builder/data/lanes/3511/501e63ce/source/monodroid/src/Mono.Android/platforms/android-24/src/produced/Android.Content.Intent中的0x0。 cs:1275,6 MvvmCross.Plugins.PictureChooser.Droid.MvxPictureChooserTask.TakePicture C#中的C#0x12
App.Services.PhotoService.PhotoService.GetPhoto中的0x3A,位於C:\\ app \\ App.Services \\ PhotoService \\ PhotoService.cs:38,4 C#
App.ViewModels.ViewModels.MainViewModel.TakePhoto中的0x7,位於C:\\ app \\ App.ViewModels \\ ViewModels \\ MainViewModel.cs:49,4 C#
您可以使用nuget中可用的Media Plugin的替代解決方案
https://www.nuget.org/packages/Xam.Plugin.Media/
您可以使用依賴項服務從android項目中調用takePictureAsync
方法。 使用此庫,您可以指定文件名和文件夾路徑來存儲圖像。 該庫還可以使用takeVideoAsync
方法拍攝視頻。
我相信您需要將MVVMCross.Pugin.PictureChooser軟件包添加到您的Core 和平台特定項目中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.