android 如何预览需要资源中的内容的组合?

1cklez4t  于 2024-01-04  发布在  Android
关注(0)|答案(3)|浏览(151)

我有以下预览功能:

  1. @Preview
  2. @Composable
  3. fun PreviewScreen(){
  4. Icon(bitmap = /*ImageBitmap instance*/, null)
  5. }

字符串
要获取ImageBitmap instance,我必须访问资源以获取可绘制对象。但我只能从Activity之类的上下文获取它们。

那么,我如何预览需要资源的组合?我如何在compose中的预览函数中获得资源?

cyej8jka

cyej8jka1#

您可以使用ImageVector,然后像XML一样使用Drawable资源。

示例

  1. @Preview
  2. @Composable
  3. fun Stack011(modifier: Modifier = Modifier) {
  4. Icon(imageVector = ImageVector.vectorResource(id = R.drawable.YOUR_IMAGE), null)
  5. }

字符串

ttygqcqt

ttygqcqt2#

在Jetpack Compose中,您可以使用多个Icon重载。其中一个重载接受Painter类型的参数。在它的帮助下,您可以在不使用Context的情况下显示来自资源的图像。实现中的其他重载将输入参数转换为Painter类型,因此如果您对它感到满意,您也可以使用它们。
举例来说:

  1. @Preview
  2. @Composable
  3. fun PreviewScreen() {
  4. Icon(
  5. painter = painterResource(id = R.drawable.ic_launcher_background),
  6. contentDescription = null,
  7. tint = Color.Unspecified
  8. )
  9. }

字符串

rwqw0loc

rwqw0loc3#

我可以像下面这样从LocalContext获取上下文:

  1. @Preview
  2. @Composable
  3. fun PreviewScreen(){
  4. val value = LocalContext.current.resources.getDrawable(R.drawable.drag_svgrepo_com, null)
  5. Icon(bitmap = value.toBitmap().asImageBitmap(), null)
  6. }

字符串

相关问题