Поделиться через


Элементы управления изображениями watchOS в Xamarin

WatchOS предоставляет WKInterfaceImage элемент управления для отображения изображений и простых анимаций. Некоторые элементы управления также могут иметь фоновое изображение (например, кнопки, группы и контроллеры интерфейса).

Apple Watch с изображением Apple Watch с простой анимацией

Используйте образы каталога ресурсов для добавления изображений в приложения Watch Kit. Требуются только @2x версии, так как на всех устройствах часы есть дисплей Retina.

Требуются только 2x версии, так как на всех устройствах часы есть дисплеи Retina

Рекомендуется убедиться, что изображения сами являются правильным размером для отображения часов. Избегайте неправильного размера изображений (особенно больших) и масштабирования, чтобы отобразить их на часы.

Размер набора часов (38mm и 42mm) можно использовать в образе каталога активов, чтобы указать разные изображения для каждого размера дисплея.

Вы можете использовать размер набора контрольных элементов размером 38 мм и 42 мм в образе каталога активов, чтобы указать разные изображения для каждого размера дисплея.

Изображения на часы

Наиболее эффективным способом отображения изображений является включение их в проект приложения наблюдения и их отображение с помощью SetImage(string imageName) метода.

Например, в примере есть несколько изображений, добавленных в каталог активов в проекте приложения наблюдения:

Пример WatchKitCatalog содержит ряд изображений, добавленных в каталог активов в проекте приложения watch

Они могут быть эффективно загружены и отображаться в часах с параметром SetImage имени строки:

myImageControl.SetImage("Whale");
myOtherImageControl.SetImage("Worry");

Фоновые изображения

Та же логика применяется к SetBackgroundImage (string imageName) классам , а также InterfaceController к классамButtonGroup. Лучшая производительность достигается путем хранения изображений в самом приложении наблюдения.

Изображения в расширении контрольных значений

Помимо загрузки изображений, хранящихся в самом приложении наблюдения, вы можете отправлять изображения из пакета расширений в приложение наблюдения для отображения (или вы можете скачать изображения из удаленного расположения и отобразить их).

Чтобы загрузить изображения из расширения часов, создайте UIImage экземпляры и вызовите SetImage объект UIImage .

Например, в примере есть изображение с именем Bumblebee в проекте расширения часов:

Пример WatchKitCatalog содержит изображение с именем Bumblebee в проекте расширения часов

Следующий код приведет к следующему:

  • изображение, загружаемое в память, и
  • отображается на часы.
using (var image = UIImage.FromBundle ("Bumblebee")) {
    myImageControl.SetImage (image);
}

Анимации

Чтобы анимировать набор изображений, все они должны начинаться с одного префикса и иметь числовые суффиксы.

В примере есть ряд нумерованных изображений в проекте приложения наблюдения с префиксом шины :

Пример WatchKitCatalog содержит ряд нумерованных изображений в проекте приложения

Чтобы отобразить эти изображения в виде анимации, сначала загрузите изображение с 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 .