gpt4 book ai didi

ios - UIImagePickerController 显示最后单击的图像。我正在使用 Monotouch/Xamarin Studio

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:31 25 4
gpt4 key购买 nike

在我的项目中,当我第一次启动相机时它工作正常。当我第二次启动相机时,我在取景器中看到了上次单击的图像。我不确定是什么原因造成的。

有人可以帮我吗?

以下是启动相机的代码块:

        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 上的一些搜索有帮助:

解决方法:从事件系统切换到委托(delegate),如下所述: https://stackoverflow.com/a/20035698/383658

所以基本上将您的代码从:

imagePicker.FinishedPickingMedia += (sender, e) => {}

到你新的 UIImagePickerControllerDelegate 委托(delegate)方法:

public override void FinishedPickingMedia (UIImagePickerController picker, NSDictionary info)
{}

关于ios - UIImagePickerController 显示最后单击的图像。我正在使用 Monotouch/Xamarin Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20082707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com