当前位置: 首页 > news >正文

使用Xamarin Forms+XLabs 完成 Camara access


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();


相关文章:

  • 服务器部署MVC API 遇到IIS 403.14 错误
  • 利用udev、sys动态创建linux设备结点
  • 创建第一个azure hadoop insight
  • ARM linux系统调用的实现原理
  • 嵌入式linux应用开发之:初识Qt
  • 内核栈的使用
  • IIS 7 ‘Handler XXX has a bad module XXX in its module list’
  • C# 使用 doggleReport 生成pdf报表
  • 在nand flash上实现JFFS2根文件文件系统
  • window API判断系统是否为闲置状态
  • 机器学习 -- 基本数学概念总结
  • 基于S3C2410的SD卡linux驱动工作原理(一)
  • R 学习 -- vector
  • 基于S3C2410的SD卡linux驱动工作原理(二)
  • R 学习 -- factor
  • 2017 年终总结 —— 在路上
  • 5、React组件事件详解
  • Go 语言编译器的 //go: 详解
  • js如何打印object对象
  • js算法-归并排序(merge_sort)
  • Python_OOP
  • Ruby 2.x 源代码分析:扩展 概述
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 机器学习 vs. 深度学习
  • 解析 Webpack中import、require、按需加载的执行过程
  • 如何胜任知名企业的商业数据分析师?
  • 如何学习JavaEE,项目又该如何做?
  • 时间复杂度与空间复杂度分析
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 听说你叫Java(二)–Servlet请求
  • 问题之ssh中Host key verification failed的解决
  • 学习JavaScript数据结构与算法 — 树
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 正则表达式小结
  • 进程与线程(三)——进程/线程间通信
  • #### go map 底层结构 ####
  • #Java第九次作业--输入输出流和文件操作
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $().each和$.each的区别
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (2)Java 简介
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (十八)SpringBoot之发送QQ邮件
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)fock函数详解
  • (转)winform之ListView
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • ./configure、make、make install 命令