@@ -27,6 +27,16 @@ import androidx.wear.protolayout.LayoutElementBuilders
2727import androidx.wear.protolayout.LayoutElementBuilders.Arc
2828import androidx.wear.protolayout.LayoutElementBuilders.ArcLine
2929import androidx.wear.protolayout.LayoutElementBuilders.DashedArcLine
30+ import androidx.wear.protolayout.LayoutElementBuilders.FontStyle
31+ import androidx.wear.protolayout.LayoutElementBuilders.Image
32+ import androidx.wear.protolayout.LayoutElementBuilders.LayoutElement
33+ import androidx.wear.protolayout.LayoutElementBuilders.SpanImage
34+ import androidx.wear.protolayout.LayoutElementBuilders.SpanText
35+ import androidx.wear.protolayout.ModifiersBuilders
36+ import androidx.wear.protolayout.ModifiersBuilders.Background
37+ import androidx.wear.protolayout.ModifiersBuilders.Modifiers
38+ import androidx.wear.protolayout.ModifiersBuilders.Semantics
39+ import androidx.wear.protolayout.ResourceBuilders
3040import androidx.wear.protolayout.ResourceBuilders.Resources
3141import androidx.wear.protolayout.TimelineBuilders
3242import androidx.wear.protolayout.TimelineBuilders.Timeline
@@ -41,6 +51,7 @@ import androidx.wear.tiles.RequestBuilders
4151import androidx.wear.tiles.RequestBuilders.ResourcesRequest
4252import androidx.wear.tiles.TileBuilders.Tile
4353import androidx.wear.tiles.TileService
54+ import com.example.wear.R
4455import com.google.common.util.concurrent.Futures
4556import com.google.common.util.concurrent.ListenableFuture
4657
@@ -248,3 +259,76 @@ class FeatureFallback : TileService() {
248259 )
249260 }
250261}
262+
263+ // [START android_wear_tile_get_started_modifiers]
264+ private fun myImage (): LayoutElement =
265+ Image .Builder ()
266+ .setWidth(dp(24f ))
267+ .setHeight(dp(24f ))
268+ .setResourceId(" image_id" )
269+ .setModifiers(
270+ Modifiers .Builder ()
271+ .setBackground(Background .Builder ().setColor(argb(0xFFFF0000 .toInt())).build())
272+ .setPadding(ModifiersBuilders .Padding .Builder ().setStart(dp(12f )).build())
273+ .setSemantics(Semantics .Builder ().setContentDescription(" Image description" ).build())
274+ .build()
275+ )
276+ .build()
277+ // [END android_wear_tile_get_started_modifiers]
278+
279+ // [START android_wear_tile_get_started_spannables]
280+ private fun mySpannable (): LayoutElement =
281+ LayoutElementBuilders .Spannable .Builder ()
282+ .addSpan(SpanText .Builder ().setText(" Hello " ).build())
283+ .addSpan(SpanImage .Builder ().setWidth(dp(24f )).setHeight(dp(24f )).setResourceId(" image_id" ).build())
284+ .addSpan(
285+ SpanText .Builder ()
286+ .setText(" world" )
287+ .setFontStyle(FontStyle .Builder ().setItalic(true ).build())
288+ .build()
289+ )
290+ .build()
291+ // [END android_wear_tile_get_started_spannables]
292+
293+ class ResourcesTileService : TileService () {
294+
295+ private val imageAsByteArray = byteArrayOf()
296+
297+ override fun onTileRequest (requestParams : RequestBuilders .TileRequest ): ListenableFuture <Tile > =
298+ Futures .immediateFuture(
299+ Tile .Builder ()
300+ .setResourcesVersion(RESOURCES_VERSION )
301+ .setTileTimeline(Timeline .fromLayoutElement(simpleLayout(this )))
302+ .build()
303+ )
304+
305+ // [START android_wear_tile_get_started_resources]
306+ override fun onTileResourcesRequest (
307+ requestParams : ResourcesRequest
308+ ) = Futures .immediateFuture(
309+ Resources .Builder ()
310+ .setVersion(" 1" )
311+ .addIdToImageMapping(
312+ " image_from_resource" ,
313+ ResourceBuilders .ImageResource .Builder ()
314+ .setAndroidResourceByResId(
315+ ResourceBuilders .AndroidImageResourceByResId .Builder ()
316+ .setResourceId(R .drawable.ic_walk)
317+ .build()
318+ ).build()
319+ )
320+ .addIdToImageMapping(
321+ " image_inline" ,
322+ ResourceBuilders .ImageResource .Builder ()
323+ .setInlineResource(
324+ ResourceBuilders .InlineImageResource .Builder ()
325+ .setData(imageAsByteArray)
326+ .setWidthPx(48 )
327+ .setHeightPx(48 )
328+ .setFormat(ResourceBuilders .IMAGE_FORMAT_RGB_565 )
329+ .build()
330+ ).build()
331+ ).build()
332+ )
333+ // [END android_wear_tile_get_started_resources]
334+ }
0 commit comments