Développer des cartes pour différentes tailles d'écran

Les cartes de votre application doivent fonctionner sur les appareils Wear OS de toutes tailles, tout en profitant d'un espace supplémentaire, le cas échéant, tout en conservant un excellent rendu écrans aussi. Ce guide fournit des recommandations pour toucher cet utilisateur expérience.

Pour en savoir plus sur les principes de conception des mises en page adaptatives, consultez la conseils de conception.

Créer des mises en page responsives à l'aide de ProtoLayout

La bibliothèque ProtoLayout Material fournit des mises en page prédéfinies pour vous aider à créer vos cartes. Ces mises en page sont déjà conçues pour s'adapter à l'écran la taille de l'image.

Reportez-vous aux mises en page de conception Figma, qui présentent la version canonique mises en page disponibles et comment les utiliser pour créer votre conception:

Nous vous recommandons d'utiliser PrimaryLayout ou EdgeContentLayout comme premier niveau mises en page pour la plupart des cas d'utilisation. Définissez le comportement responsif à l'aide de setResponsiveContentInsetEnabled, par exemple:

PrimaryLayout.Builder(deviceParameters)
    .setResponsiveContentInsetEnabled(true)
    .setContent(
        // ...
    )
.build()

Proposez des expériences différenciées grâce à des points d'arrêt

Les mises en page de la bibliothèque ProtoLayout Material sont déjà responsives et s'occupe du placement et de la visibilité corrects des éléments. Cependant, dans certains cas, vous pouvez varier le nombre d'éléments visibles pour de meilleurs résultats. Pour Par exemple, vous voudrez peut-être 3 boutons sur un écran plus petit et 5 sur un écran plus grand l'écran.

Pour mettre en œuvre ce type d'expérience différenciée, utilisez les tailles d'écran des points d'arrêt. Pour afficher une mise en page différente lorsque la taille de l'écran dépasse 225 dp:

PrimaryLayout.Builder(deviceParameters)
    .setResponsiveContentInsetEnabled(true)
    .setContent(
        MultiButtonLayout.Builder()
            .addButtonContent(button1)
            .addButtonContent(button2)
            .addButtonContent(button3)
            .apply {
                if (deviceParameters.screenHeightDp >= 225) {
                    addButtonContent(button4)
                    addButtonContent(button5)
                }
            }
            .build()
    )
    .setPrimaryLabelTextContent(label)
    .setPrimaryChipContent(compactChip)
    .build()

Les conseils de conception illustrent d'autres opportunités.

Tester les cartes sur différentes tailles d'écran à l'aide des aperçus

Il est important de tester vos mises en page sur différentes tailles d'écran. Utilisez le les annotations d'aperçu de la carte, ainsi que les TilePreviewHelper et Cours TilePreviewData:

@Preview(device = WearDevices.LARGE_ROUND)
fun smallPreview(context: Context) = TilePreviewData(
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildLayout()
        ).build()
    }
)

Cela vous permet de prévisualiser vos mises en page de cartes directement dans Android Studio. La L'exemple de points d'arrêt précédent montre comment les boutons supplémentaires s'affichent lorsque l'espace disponible à l'écran le permet, lors de l'aperçu:

Boutons supplémentaires sur les écrans plus grands

Petits et grands écrans montrant l'effet du point d'arrêt

Pour obtenir un exemple complet, consultez l'exemple de cartes multimédias sur GitHub.