设为首页 收藏本站
查看: 1227|回复: 0

Windows Phone 8 镜头应用

[复制链接]

尚未签到

发表于 2015-5-23 11:28:27 | 显示全部楼层 |阅读模式
  Lens 翻译过来其实就是滤镜透镜的意思,在Windows phone 8 中使用快门按钮的时候可以启动相机功能,相机的AppBar 中可以看到一个Lens按钮。这是一种应用的全新体验的方式,我个人就很喜欢这种方式打开相机十分方便,并且在默认相机中就可以选择目标应用的滤镜效果 这样做十分有效的提升了用户体验,而这用户体验是Windows phone平台所特有的,也为更多的lens应用提供了更多的程序入口。
  此文是 升级到WP8必需知道的13个特性 系列的一个更新 希望这个系列可以给 Windows Phone 8开发者带来一些开发上的便利。
  同时欢迎大家在这里和我沟通交流或者在新浪微博上 @王博_Nick
  下图是启动相机后 显示在AppBar中的Lins 按钮。
DSC0000.png
  下图是一个使用lens的应用的体验流程。
  
DSC0001.png
  首先如果你的应用是要进行拍摄以及保存照片到相册一定要在WMAppManifest中声明使用镜头和相册媒体库访问权限。
DSC0002.png
  另外并不是选了以上两个Item你的应用就可以显示在Lens picker中 需要你进行镜头的扩展注册 需要修改WMAppManifest文件但是这次是要进行打开编辑加入以下代码:




  并且要紧跟在Token节点后
DSC0003.png
  这样在从新部署你的应用 在Lens picker中就可以看到你的应用了
DSC0004.png
  从上图可以看出来 只有我的DEMO程序没有图标显示看上去很不友好一定会被很多同学鄙视,当然我也是要设置一下默认选择其中的图标的,我们都知道WP8是支持3种分辨率的 所以在Lens picker中我们也需要三种的图标尺寸来适应着三种分辨率
DSC0005.png
  这里有一个详细的模板说明提供下载 包含PDF 和原始PSD文件非常友好啊:Icon templates for Windows Phone 8
  你这里需要提供以上三种分辨率的图标并且使用命名规范,并且放在 Assets文件夹下  这样你就可以看到你的应用在不同分辨率下 Lens picker中的Icon 这里可以看到我偷懒就直接使用的SDK的图标但是 效果已经有啦~
  这里我在啰嗦一句 如果你希望做出以下这种可以适应系统的颜色变化的效果 就用PNG透明图片即可。
DSC0006.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 应用中去进行编辑
DSC0007.png
  从上图中可以看到这张图片是从一个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);
  
  
DSC0008.png
  声明媒体拓展功能也需要在WMAppManifest 文件中注册声明




  
  同样也是需要在紧跟Token节点 在Extension中加入此节点
DSC0009.png
  从open link中拿到图片的方法 也很简单的 利用的就是应用间Share文件的方法,
  



protected override void OnNavigatedTo(NavigationEventArgs e)
{
// Get a dictionary of query string keys and values.
IDictionary 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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-69794-1-1.html 上篇帖子: Windows 8 Charm工具条 下篇帖子: 开启Windows 8 下面的adhoc
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表