android - Jetpack Compose 使用 Painter 在图像上绘图
问题描述
使用painter,可以使用片段在ImageBitmap 上进行绘制
val imageBitmap: ImageBitmap = imageResource(id = R.drawable.landscape3)
val customPainter = remember {
object : Painter() {
override val intrinsicSize: Size
get() = Size(imageBitmap.width.toFloat(), imageBitmap.height.toFloat())
override fun DrawScope.onDraw() {
drawImage(imageBitmap)
drawLine(
color = Color.Red,
start = Offset(0f, 0f),
end = Offset(imageBitmap.width.toFloat(), imageBitmap.height.toFloat()),
strokeWidth = 5f
)
}
}
}
Image(painter = customPainter, contentDescription = null)
不推荐使用 loadFontResource。请改用 fontResource。不推荐使用 imageResource、loadImageResource、vectorResource 和 loadVectorResource。请改用painterResource。(I6b809)
不推荐使用alpha12 imageResource
。painter
的drawImage(imageBitmap)
绘制图像的函数没有替换或其他函数以外的其他函数以 imageBitmap 作为参数?
ImageBitmap 从 alpha12 开始有什么意义,因为没有不推荐使用的函数来使用资源创建它,并且不存在从 Painter 获取 ImageBitmap 的函数。
解决方案
imageResource 和 vectorResource 现在分别是 ImageBitmap 和 ImageVector 同伴的扩展函数。load{Image,Vector,Font}资源函数已被删除。(I89130)
import androidx.compose.ui.res.imageResource
// ...
val imageBitmap: ImageBitmap = ImageBitmap.imageResource(R.drawable.landscape3)
PainterResource在底层调用imageFromResource,所以我们也可以使用它:
val imageBitmap: ImageBitmap = imageFromResource(
LocalContext.current.resources,
R.drawable.landscape3
)
推荐阅读
- javascript - Github 页面未显示网站内容和错误 404
- php - GD 库图像调整大小会降低质量
- python - 从 youtube api 复制代码后,我不确定从哪里继续
- angular - 在 Angular 应用程序中,我应该使用什么方法将普通用户的布局与管理员用户的布局分开
- regex - 复杂文件名的正则表达式
- javascript - 如何添加暂停,特别是在 JavaScript 中?
- c++ - C++ | 如何使用 Linux 从箭头键获取输入
- flutter - 例外:使用不包含导航器的上下文请求导航器操作
- excel - 没有隐藏单元格的单元格颜色颜色图表系列
- fortran - 由 OMP 私有参数引起的崩溃