Kontrolki obrazów systemu watchOS na platformie Xamarin

system watchOS udostępnia kontrolkę do wyświetlania WKInterfaceImage obrazów i prostych animacji. Niektóre kontrolki mogą również mieć obraz tła (na przykład przyciski, grupy i kontrolery interfejsu).

Apple Watch showing pictureApple Watch with simple animation

Użyj obrazów wykazu zasobów, aby dodać obrazy do aplikacji zestawu Watch Kit. Wymagane są tylko @2x wersje, ponieważ wszystkie urządzenia zegarków mają wyświetlacze Retina.

Only 2x versions are required, since all watch devices have Retina displays

Dobrym rozwiązaniem jest upewnienie się, że same obrazy są prawidłowym rozmiarem wyświetlacza zegarka. Unikaj używania niepoprawnie rozmiarów obrazów (szczególnie dużych) i skalowania, aby wyświetlić je na zegarku.

Możesz użyć rozmiarów zestawu watch kit (38mm i 42mm) na obrazie wykazu zasobów, aby określić różne obrazy dla każdego rozmiaru wyświetlacza.

You can use the Watch Kit sizes 38mm and 42mm in an asset catalog image to specify different images for each display size

Obrazy na zegarku

Najbardziej efektywnym sposobem wyświetlania obrazów jest uwzględnienie ich w projekcie aplikacji zegarka i wyświetlenie ich przy użyciu SetImage(string imageName) metody .

Na przykład przykład WatchKitCatalog zawiera wiele obrazów dodanych do katalogu zasobów w projekcie aplikacji zegarka:

The WatchKitCatalog sample has a number of images added to an asset catalog in the watch app project

Można je efektywnie załadować i wyświetlić na zegarku przy użyciu parametru SetImage z nazwą ciągu:

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

Obrazy tła

Ta sama logika dotyczy SetBackgroundImage (string imageName)Buttonklas , Groupi InterfaceController . Najlepszą wydajność można osiągnąć, przechowując obrazy w samej aplikacji zegarka.

Obrazy w rozszerzeniu zegarka

Oprócz ładowania obrazów przechowywanych w samej aplikacji zegarka można wysyłać obrazy z pakietu rozszerzeń do aplikacji zegarka do wyświetlania (lub pobrać obrazy z lokalizacji zdalnej i wyświetlić te obrazy).

Aby załadować obrazy z rozszerzenia zegarka, utwórz UIImage wystąpienia, a następnie wywołaj SetImage je za pomocą UIImage obiektu .

Na przykład przykład WatchKitCatalog zawiera obraz o nazwie Bumblebee w projekcie rozszerzenia zegarka:

The WatchKitCatalog sample has an image named Bumblebee in the watch extension project

Następujący kod spowoduje:

  • obraz ładowany do pamięci i
  • wyświetlane na zegarku.
using (var image = UIImage.FromBundle ("Bumblebee")) {
    myImageControl.SetImage (image);
}

Animacje

Aby animować zestaw obrazów, wszystkie powinny zaczynać się od tego samego prefiksu i mieć sufiks liczbowy.

Przykład WatchKitCatalog zawiera serię ponumerowanych obrazów w projekcie aplikacji zegarka z prefiksem Bus :

The WatchKitCatalog sample has a series of numbered images in the watch app project with the Bus prefix

Aby wyświetlić te obrazy jako animację, najpierw załaduj obraz przy użyciu SetImage nazwy prefiksu, a następnie wywołaj metodę StartAnimating:

animatedImage.SetImage ("Bus");
animatedImage.StartAnimating ();

Wywołaj StopAnimating kontrolkę obrazu, aby zatrzymać pętlę animacji:

animatedImage.StopAnimating ();

Dodatek: Buforowanie Images (watchOS 1)

Ważne

aplikacje systemu watchOS 3 działają w całości na urządzeniu. Poniższe informacje są przeznaczone tylko dla aplikacji systemu watchOS 1.

Jeśli aplikacja wielokrotnie używa obrazu przechowywanego w rozszerzeniu (lub zostało pobrane), można buforować obraz w magazynie zegarka, aby zwiększyć wydajność kolejnych ekranów.

WKInterfaceDeviceUżyj metody sAddCachedImage, aby przenieść obraz do zegarka, a następnie użyj SetImage parametru z nazwą obrazu jako ciągu, aby go wyświetlić:

var device = WKInterfaceDevice.CurrentDevice;
using (var image = UIImage.FromBundle ("Bumblebee")) {
    if (!device.AddCachedImage (image, "Bumblebee")) {
            Console.WriteLine ("Image cache full.");
        } else {
            cachedImage.SetImage ("Bumblebee");
        }
    }
}

Możesz wykonać zapytanie dotyczące zawartości pamięci podręcznej obrazów w kodzie przy użyciu polecenia WKInterfaceDevice.CurrentDevice.WeakCachedImages.

Zarządzanie pamięcią podręczną

Pamięć podręczna o rozmiarze około 20 MB. Jest ona przechowywana w aplikacjach ponownie i gdy wypełnia ją, twoim obowiązkiem jest wyczyszczenie plików przy użyciu metod RemoveCachedImage lub RemoveAllCachedImages na WKInterfaceDevice.CurrentDevice obiekcie.