Элементы управления изображениями watchOS в Xamarin
WatchOS предоставляет WKInterfaceImage
элемент управления для отображения изображений и простых анимаций. Некоторые элементы управления также могут иметь фоновое изображение (например, кнопки, группы и контроллеры интерфейса).
Используйте образы каталога ресурсов для добавления изображений в приложения Watch Kit. Требуются только @2x версии, так как на всех устройствах часы есть дисплей Retina.
Рекомендуется убедиться, что изображения сами являются правильным размером для отображения часов. Избегайте неправильного размера изображений (особенно больших) и масштабирования, чтобы отобразить их на часы.
Размер набора часов (38mm и 42mm) можно использовать в образе каталога активов, чтобы указать разные изображения для каждого размера дисплея.
Изображения на часы
Наиболее эффективным способом отображения изображений является включение их в проект приложения наблюдения и их отображение с помощью SetImage(string imageName)
метода.
Например, в примере есть несколько изображений, добавленных в каталог активов в проекте приложения наблюдения:
Они могут быть эффективно загружены и отображаться в часах с параметром SetImage
имени строки:
myImageControl.SetImage("Whale");
myOtherImageControl.SetImage("Worry");
Фоновые изображения
Та же логика применяется к SetBackgroundImage (string imageName)
классам , а также InterfaceController
к классамButton
Group
. Лучшая производительность достигается путем хранения изображений в самом приложении наблюдения.
Изображения в расширении контрольных значений
Помимо загрузки изображений, хранящихся в самом приложении наблюдения, вы можете отправлять изображения из пакета расширений в приложение наблюдения для отображения (или вы можете скачать изображения из удаленного расположения и отобразить их).
Чтобы загрузить изображения из расширения часов, создайте UIImage
экземпляры и вызовите SetImage
объект UIImage
.
Например, в примере есть изображение с именем Bumblebee в проекте расширения часов:
Следующий код приведет к следующему:
- изображение, загружаемое в память, и
- отображается на часы.
using (var image = UIImage.FromBundle ("Bumblebee")) {
myImageControl.SetImage (image);
}
Анимации
Чтобы анимировать набор изображений, все они должны начинаться с одного префикса и иметь числовые суффиксы.
В примере есть ряд нумерованных изображений в проекте приложения наблюдения с префиксом шины :
Чтобы отобразить эти изображения в виде анимации, сначала загрузите изображение с SetImage
именем префикса, а затем вызовите StartAnimating
:
animatedImage.SetImage ("Bus");
animatedImage.StartAnimating ();
Вызов StopAnimating
элемента управления изображением, чтобы остановить цикл анимации:
animatedImage.StopAnimating ();
Приложение. Кэширование изображений (watchOS 1)
Внимание
приложения watchOS 3 выполняются полностью на устройстве. Следующие сведения предназначены только для приложений watchOS 1.
Если приложение неоднократно использует образ, хранящийся в расширении (или скачанный), можно кэшировать изображение в хранилище часов, чтобы повысить производительность для последующих дисплеев.
WKInterfaceDevice
Используйте метод s AddCachedImage
для передачи изображения в часы, а затем используйте SetImage
параметр имени изображения в качестве строки для отображения:
var device = WKInterfaceDevice.CurrentDevice;
using (var image = UIImage.FromBundle ("Bumblebee")) {
if (!device.AddCachedImage (image, "Bumblebee")) {
Console.WriteLine ("Image cache full.");
} else {
cachedImage.SetImage ("Bumblebee");
}
}
}
С помощью WKInterfaceDevice.CurrentDevice.WeakCachedImages
кода можно запросить содержимое кэша изображений.
Управление кэшем
Кэш размером около 20 МБ. Он хранится во время перезапуска приложения, и когда он заполняет его, вы несете ответственность за очистку файлов с помощью RemoveCachedImage
или RemoveAllCachedImages
методов в объекте WKInterfaceDevice.CurrentDevice
.