使用 Jetpack 卡片庫在 Wear OS by Google 谷歌上建立自定義卡片

做者 / Jolanda Verhoef,開發者關係工程師java

咱們 在 2019 年推出了卡片,從那時起,該功能便成爲 Wear OS by Google 谷歌智能手錶上最實用的功能之一。卡片訪問速度快,使用便捷,且設計爲可滑動訪問,用戶可直接在手腕上了解所需資訊及待辦事項。同時,卡片也可讓用戶控制想了解的信息和操做。android

咱們很高興宣佈 Jetpack 卡片庫 將推出 Alpha 版。開發者可使用該庫在 Wear OS 智能手錶上建立自定義卡片。咱們將在今年晚些時候推出相應的 Wear OS 平臺更新,屆時用戶便能使用此類自定義卡片。git

開發者可針對多種用例設計卡片,例如,跟蹤用戶的平常活動進度、快速開始一項鍛鍊、播放最近放過的歌曲,以及向好友發送消息。應用能夠爲用戶提供沉浸式體驗,而卡片則能夠快速加載並專一於知足用戶的即時需求。若是用戶須要更多信息,可經過點按卡片打開手錶或手機上的相關應用,得到更深度的體驗。github

開始構建

卡片使用 Android Studio 構建,是 Wear OS 應用的一部分。首先,添加 Wear OS 卡片依賴項:ide

dependencies {
  implementation "androidx.wear:wear-tiles:1.0.0-alpha01"
  debugImplementation "androidx.wear:wear-tiles-renderer:1.0.0-alpha01"
}

第一個依賴項包含建立卡片所需的庫,而第二個依賴項則可讓您在 Activity 中預覽卡片。函數

接下來,使用 TileProviderService 提供相應信息來渲染卡片:佈局

class MyTileService : TileProviderService() {
  override fun onTileRequest(requestParams: RequestReaders.TileRequest) =
    Futures.immediateFuture(Tile.builder()
      .setResourcesVersion("1")
      .setTimeline(Timeline.builder().addTimelineEntry(
         // For more information about timelines, see the docs
         TimelineEntry.builder().setLayout(
           Layout.builder().setRoot(
             Text.builder().setText("Hello world!")
           )
         )
      )
    ).build())

  override fun onResourcesRequest(requestParams: ResourcesRequest) =
    Futures.immediateFuture(Resources.builder()
      .setVersion("1")
      .build()
    )
}

這段代碼有兩個重要部分:ui

  • onTileRequest() 用於建立卡片佈局。您將在此函數內編寫大部分代碼。您可使用多個 TimelineEntry 實例來爲 不一樣的時間點 渲染不一樣的佈局。
  • onResourcesRequest() 則用於傳遞渲染卡片所需的全部資源。若是您決定添加圖形,則能夠在此處進行添加。

建立一個簡單的 Activity 來預覽卡片。將此 Activity 添加到 src/debug 中而不是 src/main 中,由於此 Activity 僅用於調試/預覽。this

class MainActivity : ComponentActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val rootLayout = findViewById<FrameLayout>(R.id.tile_container)
    TileManager(
      context = this,
      component = ComponentName(this, MyTileService::class.java),
      parentView = rootLayout
    ).create()
  }
}

如今,一切準備就緒,能夠發佈卡片了。有關具體操做及卡片的更多信息,請閱讀咱們 新發布的指南,同時請查看咱們的 卡片示例,瞭解實際效果。google

Jetpack 卡片庫已推出 Alpha 版,期待收到 您的反饋,幫助咱們改進 API。樂享編碼!

相關文章
相關標籤/搜索