![](/img/trans.png)
[英]How to Implement an iOS Overlay in Shared Code Using the Media Plugin for Xamarin.Forms?
[英]How to Implement Dependency Service for Camera Overlay in Xamarin.Forms Using the Media Plugin?
我正在嘗試使用 Xamarin 的媒體插件https://github.com/jamesmontemagno/MediaPlugin將相機疊加功能作為依賴服務傳遞到我的共享代碼中。
我無法弄清楚如何正確實現依賴服務。 該應用程序運行,但當我打開相機時,它不顯示疊加層。 如果有人可以幫助我編寫代碼,或指導我使用覆蓋選項的示例,我將不勝感激。
我的界面代碼:
public interface IPhotoOverlay
{
object GetImageOverlayAsync();
}
我的iOS代碼:
public object GetImageOverlayAsync()
{
Func<object> func = CreateOverlay;
return func;
}
public object CreateOverlay()
{
var imageView = new UIImageView(UIImage.FromBundle("face-template.png"));
imageView.ContentMode = UIViewContentMode.ScaleAspectFit;
var screen = UIScreen.MainScreen.Bounds;
imageView.Frame = screen;
return imageView;
}
我的共享代碼:
var photo = await Plugin.Media.CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions() {
OverlayViewProvider = DependencyService.Get<IPhotoOverlay>().GetImageOverlayAsync,
DefaultCamera = Plugin.Media.Abstractions.CameraDevice.Front});
在您的 Xamarin.iOS 服務中,您需要注冊依賴項,這是一個示例。
[assembly: Dependency (typeof (PhotoOverlayiOS))]
namespace UsingDependencyService.iOS
{
public class PhotoOverlayiOS : IPhotoOverlay
{
public object GetImageOverlayAsync()
{
Func<object> func = CreateOverlay;
return func;
}
public object CreateOverlay()
{
var imageView = new UIImageView(UIImage.FromBundle("face-template.png"));
imageView.ContentMode = UIViewContentMode.ScaleAspectFit;
var screen = UIScreen.MainScreen.Bounds;
imageView.Frame = screen;
return imageView;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.