Windows Phone 8 鏡頭應用 – Lenses for Windows Phone 8升級到WP8必需知道的13個特性

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.