Ovládací prvky obrázků watchOS v Xamarinu

watchOS poskytuje WKInterfaceImage ovládací prvek pro zobrazení obrázků a jednoduchých animací. Některé ovládací prvky můžou mít také obrázek pozadí (například tlačítka, skupiny a kontrolery rozhraní).

Apple Watch showing pictureApple Watch s jednoduchou animací

Obrázky katalogu assetů můžete použít k přidání obrázků do aplikací sady Watch Kit. Vyžadují se pouze @2x verze, protože všechna zařízení kukátku mají displeje Retina.

Vyžaduje se pouze 2x verze, protože všechna zařízení hodinky mají displeje Sítnice.

Osvědčeným postupem je zajistit, aby samotné obrázky byly správnou velikostí zobrazení kukátko. Nepoužívejte obrázky s nesprávnou velikostí (zejména velké) a škálujte je tak, aby se zobrazovaly na hodinkách.

Velikosti sady Watch Kit (38 mm a 42mm) v imagi katalogu prostředků můžete použít k určení různých obrázků pro každou velikost zobrazení.

K určení různých obrázků pro každou velikost zobrazení můžete použít sady Watch Kit velikosti 38mm a 42mm v imagi katalogu prostředků.

Obrázky na hodinkách

Nejúčinnější způsob, jak zobrazit obrázky, je zahrnout je do projektu aplikace kukátek a zobrazit je pomocí SetImage(string imageName) metody.

Ukázka například obsahuje řadu obrázků přidaných do katalogu prostředků v projektu aplikace Watch:

Ukázka WatchKitCatalog obsahuje řadu obrázků přidaných do katalogu prostředků v projektu aplikace watch.

Můžete je efektivně načíst a zobrazit na hodinkách pomocí SetImage parametru název řetězce:

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

Obrázky na pozadí

Stejná logika se vztahuje na SetBackgroundImage (string imageName) třídy ButtonGroup, a InterfaceController třídy. Nejlepšího výkonu dosáhnete uložením obrázků do samotné aplikace kukátek.

Obrázky v rozšíření kukátek

Kromě načítání imagí uložených v samotné aplikaci kukátek můžete obrázky z sady rozšíření odeslat do aplikace watch pro zobrazení (nebo můžete stáhnout obrázky ze vzdáleného umístění a zobrazit je).

Pokud chcete načíst obrázky z rozšíření kukátek, vytvořte UIImage instance a pak s objektem UIImage volejteSetImage.

Ukázka má například obrázek s názvem Bumblebee v projektu rozšíření kukátek:

Ukázka WatchKitCatalog obsahuje obrázek s názvem Bumblebee v projektu rozšíření kukátek.

Výsledkem bude následující kód:

  • image, která se načítá do paměti, a
  • zobrazené na hodinkách.
using (var image = UIImage.FromBundle ("Bumblebee")) {
    myImageControl.SetImage (image);
}

Animace

Pokud chcete animovat sadu obrázků, měly by všechny začínat stejnou předponou a mít číselnou příponu.

Ukázka obsahuje řadu číslovaných obrázků v projektu aplikace watch s předponou Sběrnice :

Ukázka WatchKitCatalog obsahuje řadu číslovaných obrázků v projektu aplikace watch s předponou Sběrnice.

Pokud chcete tyto obrázky zobrazit jako animaci, nejprve načtěte obrázek s SetImage názvem předpony a pak volejte StartAnimating:

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

Voláním StopAnimating ovládacího prvku obrázku zastavte smyčku animace:

animatedImage.StopAnimating ();

Příloha: obrázky Ukládání do mezipaměti (watchOS 1)

Důležité

Aplikace watchOS 3 běží zcela na zařízení. Následující informace jsou určené jenom pro aplikace watchOS 1.

Pokud aplikace opakovaně používá image uloženou v rozšíření (nebo byla stažena), je možné uložit obrázek do mezipaměti v úložišti kukátek, aby se zvýšil výkon následných zobrazení.

WKInterfaceDevicePomocí metody s AddCachedImage přeneste obrázek do kukátek a pak ho použijte SetImage s parametrem názvu obrázku jako řetězec, který ho zobrazí:

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

Obsah mezipaměti obrázku můžete dotazovat v kódu pomocí WKInterfaceDevice.CurrentDevice.WeakCachedImages.

Správa mezipaměti

Velikost mezipaměti je přibližně 20 MB. Probíhá v rámci restartování aplikace a při vyplňování je vaší zodpovědností vymazat soubory pomocí RemoveCachedImage nebo RemoveAllCachedImages metod v objektu WKInterfaceDevice.CurrentDevice .