Controles de imagem do watchOS no Xamarin
O watchOS fornece um WKInterfaceImage
controle para exibir imagens e animações simples. Alguns controles também podem ter uma imagem de plano de fundo (como botões, grupos e controladores de interface).
Use imagens do catálogo de ativos para adicionar imagens aos aplicativos do Watch Kit. Apenas @2x versões são necessárias, uma vez que todos os dispositivos de relógio têm ecrãs Retina.
É uma boa prática garantir que as imagens em si tenham o tamanho correto para a tela do relógio. Evite usar imagens de tamanho incorreto (especialmente as grandes) e dimensioná-las para exibi-las no relógio.
Você pode usar os tamanhos do Watch Kit (38 mm e 42 mm) em uma imagem de catálogo de ativos para especificar imagens diferentes para cada tamanho de exibição.
Imagens no relógio
A maneira mais eficiente de exibir imagens é incluí-las no projeto do aplicativo de observação e exibi-las usando o SetImage(string imageName)
método.
Por exemplo, o exemplo tem várias imagens adicionadas a um catálogo de ativos no projeto do aplicativo de observação:
Eles podem ser carregados e exibidos com eficiência no relógio usando SetImage
o parâmetro string name:
myImageControl.SetImage("Whale");
myOtherImageControl.SetImage("Worry");
Imagens de plano de fundo
A mesma lógica se aplica às SetBackgroundImage (string imageName)
classes on the Button
, Group
e InterfaceController
. O melhor desempenho é alcançado armazenando as imagens no próprio aplicativo do relógio.
Imagens na extensão do relógio
Além de carregar imagens que são armazenadas no próprio aplicativo do relógio, você pode enviar imagens do pacote de extensão para o aplicativo do relógio para exibição (ou você pode baixar imagens de um local remoto e exibi-las).
Para carregar imagens da extensão de observação, crie UIImage
instâncias e chame SetImage
com o UIImage
objeto.
Por exemplo, o exemplo tem uma imagem chamada Bumblebee no projeto de extensão de relógio:
O código a seguir resultará em:
- a imagem que está sendo carregada na memória, e
- exibido no relógio.
using (var image = UIImage.FromBundle ("Bumblebee")) {
myImageControl.SetImage (image);
}
Animações
Para animar um conjunto de imagens, todas elas devem começar com o mesmo prefixo e ter um sufixo numérico.
O exemplo tem uma série de imagens numeradas no projeto do aplicativo de observação com o prefixo Bus :
Para exibir essas imagens como uma animação, primeiro carregue a imagem usando SetImage
com o nome do prefixo e, em seguida, chame StartAnimating
:
animatedImage.SetImage ("Bus");
animatedImage.StartAnimating ();
Chame StopAnimating
o controle de imagem para interromper o looping de animação:
animatedImage.StopAnimating ();
Apêndice: Armazenamento em cache de imagens (watchOS 1)
Importante
Os aplicativos watchOS 3 são executados inteiramente no dispositivo. As informações a seguir são apenas para aplicativos watchOS 1.
Se o aplicativo usar repetidamente uma imagem que está armazenada na extensão (ou foi baixada), é possível armazenar a imagem em cache no armazenamento do relógio, para aumentar o desempenho para exibições subsequentes.
Use o WKInterfaceDevice
método s para transferir a imagem para a inspeção e, em seguida, use SetImage
com o parâmetro de AddCachedImage
nome da imagem como uma cadeia de caracteres para exibi-la:
var device = WKInterfaceDevice.CurrentDevice;
using (var image = UIImage.FromBundle ("Bumblebee")) {
if (!device.AddCachedImage (image, "Bumblebee")) {
Console.WriteLine ("Image cache full.");
} else {
cachedImage.SetImage ("Bumblebee");
}
}
}
Você pode consultar o conteúdo do cache de imagem no código usando WKInterfaceDevice.CurrentDevice.WeakCachedImages
o .
Gerenciando o cache
O cache tem cerca de 20 MB de tamanho. Ele é mantido em reinicializações do aplicativo e, quando ele é preenchido, é sua responsabilidade limpar arquivos usando RemoveCachedImage
ou RemoveAllCachedImages
métodos no WKInterfaceDevice.CurrentDevice
objeto.