Android 스튜디오에서 Wear OS 카드 미리보기

Android 스튜디오 Koala Feature Drop부터 Wear OS 앱의 카드 이 패널은 타일이 표시되고 상황에 따라 콘텐츠가 달라지는 등 또는 50%에 해당하는 스포츠 이벤트가 있을 수 있습니다.

미리보기 패널의 그룹 이름은
    주석 미리보기
Android 스튜디오의 Tiles Preview 패널

종속 항목 추가

앱의 build.gradle.kts에 다음 종속 항목을 포함합니다. build.gradle 파일:

dependencies {
    implementation("androidx.wear.tiles:tiles-tooling-preview:1.4.0")
    debugImplementation("androidx.wear.tiles:tiles-tooling:1.4.0")
    implementation("androidx.wear:wear-tooling-preview:1.0.0")
}

카드 미리보기 구성

다양한 Wear OS 디스플레이에서 카드가 어떻게 표시되는지 미리 보기 @Preview 주석을 추가하고 device 매개변수를 전달합니다. 참고 이 @Preview 주석이 개발자가 작성한 것과 다른 패키지에서 비롯된 것임을 컴포저블 미리보기에 사용합니다.

import androidx.wear.tiles.tooling.preview.Preview

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

리소스 추가 및 등록

카드에서 Android 리소스를 사용하는 경우 TilePreviewDataonTileResourceRequest 매개변수 다음 코드 스니펫을 사용하세요.

import androidx.wear.tiles.tooling.preview.Preview

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithResources(context: Context) = TilePreviewData(
    onTileResourceRequest = { request ->
        Resources.Builder()
            .setVersion(myResourcesVersion)
            .addIdToImageMapping(
                    myImageId, getImageById(R.drawable.myDrawableImageId))
            .build()
    },
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout()
        ).build()
    }
)

fun getImageById(
    @DrawableRes id: Int,
): ImageResource =
    ImageResource.Builder()
        .setAndroidResourceByResId(
            AndroidImageResourceByResId.Builder()
                .setResourceId(id)
                .build(),
        )
        .build()

플랫폼 데이터 소스의 특정 값 표시

카드에서 심박수, 칼로리, 이동 거리, 단계 - 타일에 해당 단계의 기본값이 표시됩니다.

특정 값을 표시하려면 생성 시 platformDataValues 매개변수를 설정합니다. TilePreviewData 객체를 반환합니다.

import androidx.wear.tiles.tooling.preview.Preview

@Preview(device = WearDevices.SMALL_ROUND)
fun previewWithPlatformOverride(context: Context) = TilePreviewData(
    platformDataValues = PlatformDataValues.of(
        PlatformHealthSources.Keys.HEART_RATE_BPM,
        DynamicDataBuilders.DynamicDataValue.fromFloat(160f)
    ),
    onTileRequest = { request ->
        TilePreviewHelper.singleTimelineEntryTileBuilder(
            buildMyTileLayout()
        ).build()
    }
)