扩展Windows Phone8相机镜头应用程序
文章信息
本教程介绍如何在Windows Phone8相机应用程序中支持新的镜头功能。 注:这是社区入口Windows Phone 8 Wiki Competition 2012Q4
Contents |
介绍
Windows Phone8的相机应用程序允许你通过镜头扩展该应用程序。在Windows Phone8中创建一个“lens”,用户将更容易使用你的应用程序直接从相机应用程序中修改或共享图像。例如,微软研究院的faceTouch应用程序(它允许用户修改照片中的面部表情)可以创建一个镜头,使用户可以更快,更高效地修改自己的照片
首先第一件事
所需的图标
镜头应用程序需要镜头选择器额外的图标。你必须在你的Assets文件夹中添加三种图标: “Lens.Screen-WVGA.png” 应当是 173x173像素的图片, “Lens.Screen-720p.png”应当是 259x259像素的图片, “Lens.Screen-WXGA.png”应当是277x277 像素的图片.
注册镜头=
你还需要注册你的应用程序启用镜头。你可以通过编辑你应用程序的属性文件夹中的“WMAppManifest.xml”注册。在</token>标签后添加以下代码到该XML文件中 (via MSDN):
<Extensions>
<Extension ExtensionName="Camera_Capture_App"
ConsumerID="{5B04B775-356B-4AA0-AAF8-6491FFEA5631}"
TaskID="_default" />
</Extensions>
处理镜头请求
当您的应用程序以镜头启动,它将启动默认页面,否则除非你指定。如果对于你的镜头取景器你想有一个单独的页面,就创建一个新的页面,其中包含取景器。当你有一个取景器后,如果你的应用程序是从相机应用程序中打开的,您将需要从该应用程序跳转到那个页面。打开你的App.xaml.cs文件,然后添加下面的类(via MSDN):
class LensExampleUriMapper : UriMapperBase
{
private string tempUri;
public override Uri MapUri(Uri uri)
{
tempUri = uri.ToString();
// Look for a URI from the lens picker.
if (tempUri.Contains("ViewfinderLaunch"))
{
// Launch as a lens, launch viewfinder screen.
return new Uri("/viewfinderExperience.xaml", UriKind.Relative);
}
// Otherwise perform normal launch.
return uri;
}
}
最后,添加下面的到你的App.xaml.cs文件的InitializePhoneApplication函数中(你可能需要展示“Phone application initialization”区域)
//Assign the lens example URI-mapper class to the application frame.
RootFrame.UriMapper = new LensExampleUriMapper();
如果你的应用程序以镜头启动,以上示例将发送你的应用程序到viewfinderExperience.xaml页面,否则则到你应用程序的默认开始页面。
开发取景器页面
取得MediaViewer
最简单的获取取景器页面是下载微软的MediaView控件并在你的应用程序中使用它。下载Basic Lens Sample on MSDN,然后引用“MediaView”项目到你的应用程序中。生成解决方案(Build->Build solution),然后在你的应用程序中添加引用(在Solution Explorer中右键添加引用)到MediaView,然后回到(或创建)你的viewfinderExperience.xaml页面并添加
xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=MediaViewer"
到<phone:PhoneApplicationPage>元素.
前端/XAML
最起码,你必须在根网格添加一个
<controls:MediaViewer>元素
Items="{Binding CameraRoll}"
你可以在Basic Lens Sample download on MSDN找到一个完整的MediaViewer示例
后端/C#
你应该从sdkBasicLensWP8CS 项目下载源代码(再一次,Basic Lens Sample download on MSDN 的部分),然后复制ViewModels文件夹到你的项目(更改sdkBasicLensWP8CS为你的项目名称)。然后你可以修改Basic Lens Sample download on MSDN的sdkBasicLensWP8CS项目中的MainPage.xaml.cs文件代码来符合你的需求
如何测试你的镜头
Windows Phone8模拟器有一个相机功能,它将在屏幕边缘显示一个移动的多颜色块。令人满意的是它确保你已经设置了正确的镜头,强烈建议在完成之前在实际的Windows Phone 8设备上测试您的应用程序。
荣誉
本页的大多数示例代码来自Basic Lens Sample on MSDN 和Lens Extensibility on MSDN。


(no comments yet)