您的位置:首页 > 其它

使用Xamarin Forms+XLabs 完成 Camara access

2016-03-10 15:45 381 查看
1. 安装nuget
Xamarin.Forms
XLabs.Forms

2. MainActivity.cs  (Android)

public class MainActivity : XFormsApplicationDroid
{
/// <summary>
/// Called when [create].
/// </summary>
/// <param name="bundle">The bundle.</param>
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
if (!Resolver.IsSet)
{
this.SetIoc();
}
else
{
var app = Resolver.Resolve<IXFormsApp>() as IXFormsApp<XFormsApplicationDroid>;
if (app != null) app.AppContext = this;
}

Xamarin.Forms.Forms.Init(this, bundle);
this.LoadApplication(new App());
}

/// <summary>
/// Sets the IoC.
/// </summary>
private void SetIoc()
{
var resolverContainer = new SimpleContainer();

var app = new XFormsAppDroid();
app.Init(this);

resolverContainer.Register<IDevice>(t => AndroidDevice.CurrentDevice)
.Register<IMediaPicker, MediaPicker>();

Resolver.SetResolver(resolverContainer.GetResolver());
}
}


3. ViewModel (Portable)

CamaraViewModel.cs

从这里拿的 https://github.com/XLabs/Xamarin-Forms-Labs/blob/master/Samples/XLabs.Sample/ViewModel/CameraViewModel.cs
4. View (portable)

Photo.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:viewModels="clr-namespace:PhotoSample.ViewModels;assembly=PhotoSample"
x:Class="PhotoSample.Views.Photo">

<ContentPage.BindingContext>
<viewModels:CameraViewModel />
</ContentPage.BindingContext>

<StackLayout>
<Button Text="Take Picture" Command="{Binding TakePictureCommand}" />
<Button Text="Select Image from Picture Library" Command="{Binding SelectPictureCommand}" />
<Button Text="Select Video from Picture Library " Command="{Binding SelectVideoCommand}" />
<Image Source="{Binding ImageSource}" VerticalOptions="CenterAndExpand" />
<Entry Text="{Binding VideoInfo}" VerticalOptions="CenterAndExpand" />
</StackLayout>

</ContentPage>


在App.cs (portable) 初始view指向photo即可

MainPage = new Photo();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: