zoukankan      html  css  js  c++  java
  • Windows Phone 8 镜头应用 Lenses for Windows Phone 8

    Lens 翻译过来其实就是滤镜透镜的意思,在Windows phone 8 中使用快门按钮的时候可以启动相机功能,相机的AppBar 中可以看到一个Lens按钮。这是一种应用的全新体验的方式,我个人就很喜欢这种方式打开相机十分方便,并且在默认相机中就可以选择目标应用的滤镜效果 这样做十分有效的提升了用户体验,而这用户体验是Windows phone平台所特有的,也为更多的lens应用提供了更多的程序入口。

    此文是 升级到WP8必需知道的13个特性 系列的一个更新 希望这个系列可以给 Windows Phone 8开发者带来一些开发上的便利。

    同时欢迎大家在这里和我沟通交流或者在新浪微博上 @王博_Nick

    下图是启动相机后 显示在AppBar中的Lins 按钮。

    下图是一个使用lens的应用的体验流程。

    首先如果你的应用是要进行拍摄以及保存照片到相册一定要在WMAppManifest中声明使用镜头和相册媒体库访问权限。

    另外并不是选了以上两个Item你的应用就可以显示在Lens picker中 需要你进行镜头的扩展注册 需要修改WMAppManifest文件但是这次是要进行打开编辑加入以下代码:

    <Extension ExtensionName="Camera_Capture_App" 
               ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5631}"
               TaskID="_default" />

    并且要紧跟在Token节点后

    这样在从新部署你的应用 在Lens picker中就可以看到你的应用了

    从上图可以看出来 只有我的DEMO程序没有图标显示看上去很不友好一定会被很多同学鄙视,当然我也是要设置一下默认选择其中的图标的,我们都知道WP8是支持3种分辨率的 所以在Lens picker中我们也需要三种的图标尺寸来适应着三种分辨率

    这里有一个详细的模板说明提供下载 包含PDF 和原始PSD文件非常友好啊:Icon templates for Windows Phone 8

    你这里需要提供以上三种分辨率的图标并且使用命名规范,并且放在 Assets文件夹下  这样你就可以看到你的应用在不同分辨率下 Lens picker中的Icon 这里可以看到我偷懒就直接使用的SDK的图标但是 效果已经有啦~

    这里我在啰嗦一句 如果你希望做出以下这种可以适应系统的颜色变化的效果 就用PNG透明图片即可。


    点击Lens按钮后会出现支持Lens API的所有应用列表 点击列表中的某一个应用图标后会通过Deep Link的形式跳转(打开)至目标应用。处理这种Deep Link的方法请参考 windows phone 8 中的应用间通信 也可以参考MSDN :http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662936(v=vs.105).aspx

    相信一般的提供滤镜的应用都提供了 图片编辑的功能,各种效果 特效过后让照片显示的光鲜靓丽,当然在照片库中可以使用一个入口连接将照片送入一个 lens 应用中去进行编辑

    从上图中可以看到这张图片是从一个LensAPP保存的并且可以使用该App打开这张图片 下面我介绍一下如何实现此功能

    首先你的图片是通过你的LensAPP保存的,之后会就在相app bar 中的item中就会直接出现Open Link

                    MediaLibrary library = new MediaLibrary();
    
                    string lName = GeneratePhotoName();
    
    
                    var myStore = IsolatedStorageFile.GetUserStoreForApplication();
    
    
                    if (myStore.FileExists(lName))
                    {
                        MessageBox.Show("图片已经存在");
                    }
                    else
                    {
                        Picture newPicture = this.mediaLibrary.SavePictureToCameraRoll(lName, e.ChosenPhoto);
    
                        MessageBox.Show("保存成功!", "提示", MessageBoxButton.OK);

     声明媒体拓展功能也需要在WMAppManifest 文件中注册声明

    <Extension ExtensionName="Photos_Rich_Media_Edit" 
               ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5632}" 
               TaskID="_default" />

    同样也是需要在紧跟Token节点 在Extension中加入此节点

    从open link中拿到图片的方法 也很简单的 利用的就是应用间Share文件的方法,

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        // Get a dictionary of query string keys and values.
        IDictionary<string, string> queryStrings = this.NavigationContext.QueryString;
    
        // Ensure that there is at least one key in the query string, and check whether the "token" key is present.
        if (queryStrings.ContainsKey("token"))
        {
            // Retrieve the photo from the media library using the token passed to the app.
            MediaLibrary library = new MediaLibrary();
            Picture photoFromLibrary = library.GetPictureFromToken(queryStrings["token"]);
    
            // Create a BitmapImage object and add set it as the image control source.
            // To retrieve a full-resolution image, use the GetImage() method instead.
            BitmapImage bitmapFromPhoto = new BitmapImage();
            bitmapFromPhoto.SetSource(photoFromLibrary.GetPreviewImage());
            image1.Source = bitmapFromPhoto;
    
        }
    }

    deep link的方法之前已经介绍过了相信大家已经不想再听我啰嗦了 再次给出参考连接吧

    参考 windows phone 8 中的应用间通信

    MSDN:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662942(v=vs.105).aspx

    看到这里相信大家对Lens APP有了一定的了解赶快动手试试吧,欢迎大家在这里和我沟通交流或者在新浪微博上 @王博_Nick

  • 相关阅读:
    JAVA :: MVC
    顺序栈创建
    editplus 配置工具集
    链表之创建
    13.1.22:线性表之单链表
    Web 多线程作业
    给 Mac OS X Lion 刻一张安装光盘
    kubernetes组件之api 安装
    kubeadm 之k8s 多master 部署
    kubernetes集群之部署kubescheduler组件
  • 原文地址:https://www.cnblogs.com/sonic1abc/p/2826576.html
Copyright © 2011-2022 走看看