使用 Glide 在 Compose 中加载图片
在公司业务引入 Compose 到现在也有一年了,图片加载这一块一直是 UI 基础设施的常聊话题,这期聊一下这段时间我们在 Compose 加载图片上的一些方案尝试,以及这个过程遇到的一些问题。 Compose 基础图片加载 首先我们要先认识一下 Compose 基础库加载图片的方式,以及 Painter。 Painter 是 Compose 中一个可绘制内容的抽象类型,它可以通过一些机制去配置绘制内容的透明度、颜色过滤器、绘制内容的测量大小、以及绘制方向等。 常见的 Painter 类型有: ColorPainter 绘制纯颜色 BrushPainter 绘制渐变色 BitmapPainter 绘制 Bitmap VectorPainter 绘制矢量图 Compose 中绘制图片大多也是依靠 Painter(但不是强依赖),通过 painterResource 方法就可以将本地的资源 id 加载成 Painter 给 Image 控件绘制。例如下面的代码就可以在 Content 这个控件中显示一个 App 内的资源图片。 @Composable fun Content() { Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Text("Image Compare") Image( painter = painterResource(R.drawable.compose), modifier = Modifier.size(50.dp), contentScale = ContentScale.Crop, alignment = Alignment.Center, contentDescription = null ) } } 这里可以看出两个问题: ...