Страницы

Поиск по вопросам

понедельник, 13 апреля 2020 г.

Как на эмулятор закачать картинки/фотографии?

#эмулятор #windows_phone_8

                    
Как на эмулятор Windows Phone 8 закачать картинки/фотографии с компьютера (не из
своей программы)?    


Ответы

Ответ 1



Создайте папку TestImages в проекте и добавьте туда изображения. Установите значение Build action в Content на файлы в свойствах Visual Studio. Измените .csproj (правый клик на проекте, 'Unload Project' потом правый клик, 'edit .csproj') Добавьте условие настройки в строки, которые включают файлы в проекте, как этот: Добавьте следующий код в App constructor: #if DEBUG if (Microsoft.Devices.Environment.DeviceType == DeviceType.Emulator) { EmulatorHelper.AddDebugImages(); } #endif Добавьте класс EmulatorHelper: using System; using System.Collections.Generic; using System.IO.IsolatedStorage; using Microsoft.Xna.Framework.Media; namespace MyPhotoApp { public static class EmulatorHelper { const string flagName = "__emulatorTestImagesAdded"; public static void AddDebugImages() { bool alreadyAdded = CheckAlreadyAdded(); if (!alreadyAdded) { AddImages(); SetAddedFlag(); } } private static bool CheckAlreadyAdded() { IsolatedStorageSettings userSettings = IsolatedStorageSettings.ApplicationSettings; try { bool alreadyAdded = (bool)userSettings[flagName]; return alreadyAdded; } catch (KeyNotFoundException) { return false; } catch (ArgumentException) { return false; } } private static void SetAddedFlag() { IsolatedStorageSettings userSettings = IsolatedStorageSettings.ApplicationSettings; userSettings.Add(flagName, true); userSettings.Save(); } private static void AddImages() { string[] fileNames = { "img1", "img2", "img3", "img4", "img5" }; foreach (var fileName in fileNames) { MediaLibrary myMediaLibrary = new MediaLibrary(); Uri myUri = new Uri(String.Format(@"TestImages/{0}.jpg", fileName), UriKind.Relative); System.IO.Stream photoStream = App.GetResourceStream(myUri).Stream; byte[] buffer = new byte[photoStream.Length]; photoStream.Read(buffer, 0, Convert.ToInt32(photoStream.Length)); myMediaLibrary.SavePicture(String.Format("{0}.jpg", fileName), buffer); photoStream.Close(); } } } } Теперь у Вас есть проект, который автоматически добавляет тестовые изображения в фотогалерею, при условии, что: build Configuration установлена в 'Debug' приложение запущено в эмуляторе изображения еще не были добавлены Преимущество в том, что это не влияет на Release XAP по производительности или размеру. Источник

Комментариев нет:

Отправить комментарий