Udostępnij za pośrednictwem


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 przedstawiający obraz Apple Watch z prostą animacją

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.

Wymagane są tylko wersje 2x, ponieważ wszystkie urządzenia zegarków mają wyświetlacze Retina

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.

W obrazie wykazu zasobów można użyć rozmiarów zestawu watch kit 38mm i 42mm, aby określić różne obrazy dla każdego rozmiaru wyświetlania

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 zawiera kilka obrazów dodanych do katalogu zasobów w projekcie aplikacji zegarka:

Przykład WatchKitCatalog zawiera wiele obrazów dodanych do katalogu zasobów w projekcie aplikacji zegarka

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 zawiera obraz o nazwie Bumblebee w projekcie rozszerzenia zegarka:

Przykład WatchKitCatalog zawiera obraz o nazwie Bumblebee w projekcie rozszerzenia zegarka

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 zawiera serię ponumerowanych obrazów w projekcie aplikacji zegarka z prefiksem Bus :

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

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 obrazów (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.