Wear OS Tiles能否使用Drawable?替换URL后显示空白问题求助
Wear OS Tiles本地Drawable显示空白圆形的问题解决
问题原因
你把R.drawable.ic_search_24转成字符串传给setImageContent()的做法是错误的。Wear Tiles的Button.Builder.setImageContent()方法不接受字符串形式的资源ID,它需要的是用ImageContent包装后的合法图像内容对象。直接传字符串会让系统无法解析资源,所以只显示空白圆形。
正确代码写法
改用ImageContent.Builder.resource()来构建本地Drawable对应的图像内容,替换错误代码:
private fun contactLayout( context: Context, contact: Contact, clickable: ModifiersBuilders.Clickable, ) = Button.Builder(context, clickable) .setContentDescription(contact.name) .apply { if (contact.avatarUrl != null) { // 加载本地Drawable资源作为按钮图片 setImageContent( ImageContent.Builder.resource(R.drawable.ic_search_24) .build() ) } else { setTextContent(contact.initials) setButtonColors(ButtonColors.secondaryButtonColors(MessagingTileTheme.colors)) } } .build()
注意点
- 加载网络图片时才需要用
ImageContent.Builder.url(); - 本地资源要直接传整数类型的资源ID(也就是
R.drawable.ic_search_24本身,别转成字符串),这样系统才能正确识别并加载对应的Drawable。
内容的提问来源于stack exchange,提问作者Paolo Lotti
相关产品推荐
相关产品推荐

