【问题标题】:Unresolved reference: vectorResource and imageResources in Jetpact Compose 1.0.0-beta07未解决的参考:Jetpact Compose 1.0.0-beta07 中的 vectorResource 和 imageResources
【发布时间】:2021-05-26 07:34:05
【问题描述】:

我使用的是 jetpack compose 1.0.0-alpha 11。下面的代码有效。

Image(
  imageResource(R.drawable.header),
  contentDescription = null,
  modifier = itemModifier,
  contentScale = ContentScale.Crop
)

但是在 jetpack compose 1.0.0-beta07 中,imageResourcevectorResource 不再有效。

获取图片资源的新方法是什么?

【问题讨论】:

    标签: android kotlin android-jetpack-compose


    【解决方案1】:

    使用1.0.x,您可以使用painterResource 函数:

     Image(painterResource(R.drawable.ic_xxxx),"content description")
    

    这可以分别为基于ImageBitmap 的资产或基于矢量的资产加载BitmapPainterVectorPainter 的实例。
    此方法适用于图像(PNG 或 JPG 文件)或VectorDrawable xml 资产。

    关于ImageBitmap.imageResource(R.drawable.header)的用法

    此函数旨在用于需要低级ImageBitmap 特定功能的情况。为了简单地在屏幕上显示,建议使用与矢量/位图无关的painterResource

    【讨论】:

      【解决方案2】:

      您可以使用painterResource轻松访问可绘制资源。

      Image(painter = painterResource(id = R.drawable.someVector), contentDescription = null)
      
      

      【讨论】:

      • 谢谢。这行得通。但是,它返回不同的类型,即 Painter 而不是 ImageBitmapImageVector
      【解决方案3】:

      我发现我们可以通过ImageVectorImageBitmap的扩展名继续使用vectorResourceimageResource

      例如

      Image(
        ImageBitmap.imageResource(R.drawable.header),
        contentDescription = null,
        modifier = itemModifier,
        contentScale = ContentScale.Crop
      )
      

      【讨论】:

      • 既然您使用的是R.drawable 资源,为什么需要ImageBitmap 而不是Painter
      猜你喜欢
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      相关资源
      最近更新 更多