Страницы

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

пятница, 5 июля 2019 г.

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

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


Ответ

Создайте папку 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 по производительности или размеру. Источник

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

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