Ios UIImagePickerController正在显示上次单击的图像。我正在使用Monotouch/Xamarin Studio
在我的项目中,当我第一次启动相机时,它工作正常。当我第二次启动相机时,我看到上次在取景器中点击的图像。我不确定这是什么原因造成的 有人能帮我吗 以下是启动摄像头的代码块:Ios UIImagePickerController正在显示上次单击的图像。我正在使用Monotouch/Xamarin Studio,ios,xamarin.ios,xamarin,Ios,Xamarin.ios,Xamarin,在我的项目中,当我第一次启动相机时,它工作正常。当我第二次启动相机时,我看到上次在取景器中点击的图像。我不确定这是什么原因造成的 有人能帮我吗 以下是启动摄像头的代码块: UIImagePickerController imagePicker = new UIImagePickerController(); // Handle media selected. var documentsDirectory = Environment.GetFolde
UIImagePickerController imagePicker = new UIImagePickerController();
// Handle media selected.
var documentsDirectory = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
imagePicker.FinishedPickingMedia += (sender, e) => {
UIImage image = (UIImage)e.Info.ObjectForKey(
new NSString("UIImagePickerControllerOriginalImage"));
if (image != null)
{
this.InvokeOnMainThread(() => {
this.clickedImage.Image = image;
image.SaveToPhotosAlbum(delegate(UIImage img, NSError err){
});
string pngFilename = System.IO.Path.Combine (documentsDirectory, "Photo.png"); // hardcoded filename, overwrites each time
NSData imgData = image.AsPNG();
NSError SaveErr = null;
if (imgData.Save(pngFilename, false, out SaveErr))
{
Console.WriteLine("saved as " + pngFilename);
} else {
Console.WriteLine("NOT saved as" + pngFilename + " because" + SaveErr.LocalizedDescription);
}
});
}
DismissViewController(true,null);
};
// Handle cancellation of picker.
imagePicker.Canceled += (sender, e) => {
DismissViewController(true,null);
};
btnCameraDisplay1.SetTitle("Take Picture", UIControlState.Normal);
btnCameraDisplay1.Font = UIFont.SystemFontOfSize(19);
btnCameraDisplay1.SetTitleColor(UIColor.Black, UIControlState.Normal);
btnCameraDisplay1.TouchUpInside += delegate(object sender, EventArgs e)
{
if(UIImagePickerController.IsSourceTypeAvailable(UIImagePickerControllerSourceType.Camera))
{
imagePicker.SourceType = UIImagePickerControllerSourceType.Camera;
imagePicker.AllowsEditing = false;
this.PresentViewController(imagePicker, true,null);
}
else{
alertView = new UIAlertView();
alertView.AddButton("OK");
alertView.Message = "No camera available in this device.";
alertView.AlertViewStyle = UIAlertViewStyle.Default;
alertView.Show();
}
};
我遇到了同样的问题。在这里搜索Stackoverflow有助于:
- Xamarins对FinishedPickingMedia事件的实现可能存在问题。(从这里开始)
imagePicker.FinishedPickingMedia += (sender, e) => {}
要使用新的UIImagePickerController委派方法,请执行以下操作:
public override void FinishedPickingMedia (UIImagePickerController picker, NSDictionary info)
{}
请张贴您用于启动摄像头控件的代码。仅附上上面的代码…需要更多信息。“您看到finder中单击的最后一张图像”是什么意思?上面的代码(全部)只调用一次吗?还是你要多次调用它?我在屏幕上有btnCameraDisplay1按钮。我点击按钮相机启动。单击照片后,我选择使用照片并从相机启动的地方返回到我的原始屏幕。现在,我再次点击相同的btnCameraDisplay1按钮,这一次相机是用最后点击的图像启动的。请让我知道,如果你需要更多关于这方面的信息。